{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/studio.ts","webpack:///./src/views/app/app.scss?78cb","webpack:///./src/globals.ts","webpack:///./src/support/browser.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/router.ts","webpack:///./src/support/playerApi.ts","webpack:///./src/support/signinUtil.ts","webpack:///./src/support/utility.ts","webpack:///./src/support/localStorage.ts","webpack:///./src/support/playerUtil.ts","webpack:///./src/store/category.ts","webpack:///./src/store/serverData.ts","webpack:///./src/store/store.ts","webpack:///./src/support/eventBus.ts","webpack:///./src/support/debug.ts","webpack:///./src/views/app/app.vue?aea4","webpack:///./src/components/topBar/topBar.vue?a4fc","webpack:///./src/components/topBar/topBar.ts","webpack:///./src/components/topBar/topBar.ts?1112","webpack:///./src/components/topBar/topBar.vue","webpack:///./src/views/app/app.ts","webpack:///./src/views/app/app.ts?8c41","webpack:///./src/views/app/app.vue","webpack:///./src/main.ts","webpack:///./src/components/topBar/tobBar.scss?5b46","webpack:///./src/assets/XboxResearch.Logo.White.png","webpack:///./src/support/studioPageBase.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","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","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","clearTimeout","chunk","errorType","realSrc","error","undefined","setTimeout","all","m","c","d","name","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","Studio","_VuexModule","_inherits","_super","_createSuper","_this","_classCallCheck","studio","Globals","NewStudio","studios","_createClass","alias","this","find","item","Debug","log","_fetchStudios","_asyncToGenerator","regeneratorRuntime","mark","_callee","method","message","wrap","_context","prev","next","ServerDataModule","serverData","isSignedIn","abrupt","PlayerApi","studioList","sent","orderBy","commit","t0","stop","fetchStudios","_x","arguments","_createStudio","_callee2","_context2","createStudio","_x2","_editStudio","_callee3","_context3","editStudio","_x3","_turnOffStudio","_callee4","_context4","turnOffStudio","_x4","_this$studios","concat","_toConsumableArray","studioId","found","assign","idx","sortedIndexBy","title","EventBus","Instance","$emit","StudiosChanged","indexOf","VuexModule","__decorate","Mutation","MutationAction","mutate","Action","Module","dynamic","store","StudioModule","getModule","setDebugModule","VideoPlayerState","serverViewModel","expired","hostName","isAdmin","isTeamMember","isDeveloper","isLimitedBrowser","debugMode","debugging","email","fullName","providerName","mute","notAuthorized","hideTopBar","ServerData","model","isOwner","logoFileName","backgroundFileName","categoryId","category","categoryOrder","disabled","liveOnly","noSecurity","isAllStudio","logoUrl","backgroundUrl","hasLogoImage","hasBackgroundImage","id","order","errors","busy","canMoveUp","canMoveDown","hash","lastModifiedTime","studies","liveVideos","playtests","videoCount","liveVideoCount","vodVideoCount","workEmail","company","provider","isGroup","roleType","accessType","role","studioTitle","confirmationId","approved","confirmed","isEmployee","pendingApprovalId","businessJustification","changedBy","noAuth","sendGridEmail","sendGridFrom","study","tooltip","isLive","creationDate","streamUrl","captions","filter","filterName","azure","testPlaybackUrl","token","player","downloadUrl","disableDownload","dontPlay","downloadCaptionsUrl","downloadProgress","captionsProgress","autoMuted","XboxResearch","EveryoneAtMicrosoft","GlobalEveryone","AllStudios","AllStudiosTitle","Microsoft","isMobile","Android","navigator","userAgent","match","BlackBerry","iOS","Opera","Windows","any","getIEVersion","ua","isEdge","parseValue","replace","pluses","decodeURIComponent","JSON","parse","Browser","valueToSave","encode","stringify","localStorage","setItem","defaultValue","getItem","decode","getStorageItem","header","previousElem","elem","getElementById","body","parentElement","$elem","width","css","desiredWidth","defaultWidth","defaultFontSize","minFontSize","ratio","fontSize","Math","max","$","$textArea","text","textArea","removeAttr","focus","select","execCommand","Util","showToast","attr","encodeURIComponent","$route","params","query","getParam","_getRouteParam","parseInt","decodeURI","toLowerCase","queryStr","location","search","substr","idxEnd","map","webpackContext","req","webpackContextResolve","code","keys","Vue","use","VueRouter","homeSettings","component","ownerRequired","studioSettings","routes","path","display","meta","settings","hidePrivacy","unSecure","base","linkActiveClass","linkExactActiveClass","video","PlayerUtil","videoToStreamApiDto","postApiRequest","recreate","stream","streamName","videos","streams","uploadInfo","encodeInfo","studioArg","file","url","json","jsonResponse","showError","headers","noCredentials","approval","limit","permission","_addPermissionWorker","newUser","response","isSpecialGroup","addPermission","finish","addPermissionWorker","dumpJson","allData","externalUsersOnly","options","RequestVerificationToken","sessionStorage","TabSessionId","postUrl","processApiRespose","handleExpiredResponse","handleNotAuthorizedResponse","status","editServerData","SigninUtil","signin","LocalData","SigninKey","save","remove","redirectUrl","urlParam","origin","saveProvider","endsWith","startsWith","DefaultPostOptions","left","right","localeCompare","sensitivity","info","relativeHref","controller","parts","split","join","re","test","sanitizeName","sanitizeId","dateTime","moment","format","toString","now","Date","end","start","mEnd","mStart","diff","utc","_objectSpread","fetch","cache","credentials","ok","statusText","catch","fetchUrl","callback","failedPromise","scriptTag","onreadystatechange","timeOut","_showToast","positionClass","toastr","clear","success","floor","random","_forEachAsync","index","forEachAsync","Array","removeItem","DebugMergeStudyList","state","NONE","LOADING","READY","PLAYING","PAUSED","ENDED","ERROR","oldVideos","newVideos","removeOld","differenceWith","compareVideoStrings","addNew","pullAllWith","forEach","newVideo","sortedVideos","tgtIndex","getVideoSignature","studyList","names","responseStudies","getStudyNames","newStudy","synchronizeVideos","reverse","studyName","compareVideos","findIndex","addVideoPrivateMemebers","caption","sanitizeCompany","verbose","streamResult","sortCompareItems","creationDateResult","router","redirectToStudioView","redirectToView","view","route","Category","categories","_fetchCategories","categoriesList","fetchCategories","_this$categories","_createCategory","createCategory","_editCategory","editCategory","_deleteCategory","deleteCategory","CategoriesChanged","CategoryModule","ServerDataStore","NewServerViewModel","ServerDataChanged","Vuex","Store","eventBusInstance","PermissionsChanged","ShowSettingsWizard","VideosChanged","showSettingsWizard","DebugModule","dumpCallStack","stack","windowObj","toUpperCase","g_Player","g_PlayerAms","initialized","initializeDebug","_vm","_h","$createElement","_c","_self","staticClass","attrs","directives","rawName","expression","loading","_e","fullPath","_v","ref","wizardParent","wizardVideo","staticRenderFns","on","staticStyle","signOutTitle","clearSignin","TopBarComponent","_Vue","noAdmin","getBoolParam","noOwner","noTeamMember","parent","Component","TopBar","AppComponent","_StudioPageBase","getIntParam","transitionName","redirectedView","_created","_get","_getPrototypeOf","getProvider","created","_mounted","_this2","redirectToProvider","$router","beforeEach","to","from","routerBeforeEach","afterEach","routerAfterEach","$on","mounted","loaded","_routerBeforeEach","_routerAfterEach","_x5","wizard","$refs","settingsWizard","navigate","returnUrl","StudioPageBase","ensureCalled","config","productionTip","VModal","dialog","BlockUI","style","render","h","App","$mount","baseOptions","baseKey","useExistingStudio","requireStudio","getRouteParam","load","_mountedAsync","mountedAsync","selectStudio","_load","stringCompare","loginSession","onLoaded","redirectToError","_checkStudioAccess","checkStudioAccess","hasAccess","_this3","NewCategory"],"mappings":"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","file":"js/app.99a2608e.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(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 \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\": 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\": 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-067d59ac\":\"2b7dd6cc\",\"chunk-13b48272\":\"b112d532\",\"chunk-189b507f\":\"14a1b893\",\"chunk-1c8a5fec\":\"4f0f3a86\",\"chunk-256295a2\":\"637b76c4\",\"chunk-2bb16cae\":\"8cff0268\",\"chunk-2d0da367\":\"efde630a\",\"chunk-2d0d732f\":\"426ccae1\",\"chunk-72b6c98f\":\"1f46a8e2\",\"chunk-327d9bd8\":\"84a37721\",\"chunk-4722709f\":\"1c3e6065\",\"chunk-4a7da03e\":\"bd63d0e6\",\"chunk-532a9e06\":\"385d3afc\",\"chunk-58cd151d\":\"3b5a18a8\",\"chunk-61d4e29e\":\"98fbe9bd\",\"chunk-64cd3db2\":\"62f12298\",\"chunk-692eebb3\":\"b19fd5fd\",\"chunk-6af8eab2\":\"069749ad\",\"chunk-6dbe0723\":\"ef369a3e\",\"chunk-78931486\":\"c4d528f7\",\"chunk-7add1e05\":\"985b13e7\",\"chunk-aa323d92\":\"251a42b1\",\"chunk-c873ee7e\":\"afc42e73\",\"chunk-c9c03de0\":\"8575ee67\",\"chunk-e01cca6e\":\"18e16306\",\"chunk-f578e66a\":\"135e5d8b\",\"chunk-07fdd8c9\":\"94341020\",\"chunk-1de57cd3\":\"67f93227\",\"chunk-25a3353e\":\"fa5ccd26\",\"chunk-274b033c\":\"226e2239\",\"chunk-2b142f6e\":\"6cbe26c0\",\"chunk-31e8d9ec\":\"f5c60882\",\"chunk-4a0d9de3\":\"5d94999e\",\"chunk-5d29b3b7\":\"2cd1f917\",\"chunk-699f2364\":\"8f637312\",\"chunk-6e647cd7\":\"a5edd986\",\"chunk-717f60ea\":\"b1b1fff5\",\"chunk-b427f6ea\":\"24524e0e\",\"chunk-f7e812f0\":\"7f3c72dc\"}[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-067d59ac\":1,\"chunk-13b48272\":1,\"chunk-189b507f\":1,\"chunk-1c8a5fec\":1,\"chunk-256295a2\":1,\"chunk-2bb16cae\":1,\"chunk-72b6c98f\":1,\"chunk-327d9bd8\":1,\"chunk-4722709f\":1,\"chunk-4a7da03e\":1,\"chunk-532a9e06\":1,\"chunk-58cd151d\":1,\"chunk-61d4e29e\":1,\"chunk-64cd3db2\":1,\"chunk-692eebb3\":1,\"chunk-6af8eab2\":1,\"chunk-6dbe0723\":1,\"chunk-78931486\":1,\"chunk-7add1e05\":1,\"chunk-aa323d92\":1,\"chunk-c873ee7e\":1,\"chunk-c9c03de0\":1,\"chunk-e01cca6e\":1,\"chunk-f578e66a\":1,\"chunk-07fdd8c9\":1,\"chunk-1de57cd3\":1,\"chunk-25a3353e\":1,\"chunk-274b033c\":1,\"chunk-2b142f6e\":1,\"chunk-31e8d9ec\":1,\"chunk-4a0d9de3\":1,\"chunk-5d29b3b7\":1,\"chunk-699f2364\":1,\"chunk-6e647cd7\":1,\"chunk-717f60ea\":1,\"chunk-b427f6ea\":1,\"chunk-f7e812f0\":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-067d59ac\":\"42ea543b\",\"chunk-13b48272\":\"08db75a9\",\"chunk-189b507f\":\"4c848bc5\",\"chunk-1c8a5fec\":\"42785da9\",\"chunk-256295a2\":\"958a6b36\",\"chunk-2bb16cae\":\"7786fec5\",\"chunk-2d0da367\":\"31d6cfe0\",\"chunk-2d0d732f\":\"31d6cfe0\",\"chunk-72b6c98f\":\"9f4e3416\",\"chunk-327d9bd8\":\"843351e3\",\"chunk-4722709f\":\"9fb7389b\",\"chunk-4a7da03e\":\"6b7ca270\",\"chunk-532a9e06\":\"a7cfbf8e\",\"chunk-58cd151d\":\"170ff8ee\",\"chunk-61d4e29e\":\"34e3da31\",\"chunk-64cd3db2\":\"702ea833\",\"chunk-692eebb3\":\"513c0cec\",\"chunk-6af8eab2\":\"f9c39d2c\",\"chunk-6dbe0723\":\"49a2ba18\",\"chunk-78931486\":\"71ef5876\",\"chunk-7add1e05\":\"ddc1eaf7\",\"chunk-aa323d92\":\"95fc8b1e\",\"chunk-c873ee7e\":\"0e433876\",\"chunk-c9c03de0\":\"b3878445\",\"chunk-e01cca6e\":\"4273e114\",\"chunk-f578e66a\":\"01534d00\",\"chunk-07fdd8c9\":\"dd696a96\",\"chunk-1de57cd3\":\"7054cc7b\",\"chunk-25a3353e\":\"8c59fbe5\",\"chunk-274b033c\":\"45d0b6dc\",\"chunk-2b142f6e\":\"fb3a42b3\",\"chunk-31e8d9ec\":\"86e43727\",\"chunk-4a0d9de3\":\"64092622\",\"chunk-5d29b3b7\":\"4e363e01\",\"chunk-699f2364\":\"d24893f0\",\"chunk-6e647cd7\":\"8235c45d\",\"chunk-717f60ea\":\"9d464af9\",\"chunk-b427f6ea\":\"da93b388\",\"chunk-f7e812f0\":\"9fe8c93d\"}[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.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\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\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\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([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/**\r\n * Studio store - using vuex-module-decorators\r\n * Reference https://championswimmer.in/vuex-module-decorators/pages/core/actions.html\r\n * \r\n * Action - async operation that fetches the store data\r\n * Mutation - synchronus operation that actually changes the store property\r\n * MutationAction - async operation that fetches the store data and changes the store property\r\n * \r\n * ** this ** considerations:\r\n * 1. this is not a true class pointer, but instead a store object containing Module getters only\r\n * 2. Use this.commit to immediately commit\r\n * 3. Actions cannot reference Module properties via this without consequences.\r\n * 3. MutationAction cannot reference Module properties via this without consequences.\r\n * \r\n */\r\nimport { EventBus } from '@/support/eventBus';\r\nimport Globals from '@/globals';\r\nimport PlayerApi from '@/support/playerApi';\r\nimport store from '@/store/store';\r\nimport { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport { orderBy, sortedIndexBy } from 'lodash';\r\nimport { ServerDataModule } from './serverData';\r\n\r\n@Module({ dynamic: true, store, name: 'studio' })\r\nexport class Studio extends VuexModule {\r\n studio: SUR.AzureStudioDto = Globals.NewStudio;\r\n studios: SUR.AzureStudioDto[] = [];\r\n\r\n @Mutation\r\n selectStudio(alias: string) {\r\n let studio = this.studios.find(item => item.studio == alias);\r\n this.studio = studio || Globals.NewStudio;\r\n Debug.log('studio selected studio', this.studio.studio);\r\n return this.studio;\r\n }\r\n\r\n @MutationAction({ mutate: ['studios'] })\r\n async fetchStudios(method: string): Promise {\r\n try {\r\n if (!ServerDataModule.serverData.isSignedIn) {\r\n return {\r\n studios: []\r\n };\r\n }\r\n\r\n Debug.log('fetchStudios', method);\r\n\r\n let data = await PlayerApi.studioList();\r\n data = orderBy(data, ['title']);\r\n\r\n (this).commit('commit_studios', data);\r\n\r\n return {\r\n studios: data\r\n };\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('Studios - fetchStudios Failed aquire studios: ' + message);\r\n\r\n return {\r\n studios: []\r\n };\r\n }\r\n }\r\n\r\n /*****************************************************************\r\n * Studio Actions\r\n *\r\n *****************************************************************\r\n */\r\n\r\n @Action({ commit: 'commit_create_studio' })\r\n async createStudio(studio: SUR.AzureStudioDto) {\r\n try {\r\n if (!ServerDataModule.serverData.isSignedIn)\r\n return null;\r\n\r\n Debug.log('createStudio', studio.studio, studio);\r\n return PlayerApi.createStudio(studio);\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('createStudio', studio.studio, message);\r\n throw message;\r\n }\r\n }\r\n\r\n @Action({ commit: 'commit_edit_studio' })\r\n async editStudio(studio: SUR.AzureStudioDto) {\r\n try {\r\n if (!ServerDataModule.serverData.isSignedIn)\r\n return null;\r\n\r\n Debug.log('editStudio', studio.studio, studio);\r\n return await PlayerApi.editStudio(studio);\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('editStudio', studio.studio, message);\r\n throw message;\r\n }\r\n }\r\n\r\n @Action({ commit: 'commit_delete_studio' })\r\n async turnOffStudio(studio: SUR.AzureStudioDto) {\r\n try {\r\n if (!ServerDataModule.serverData.isSignedIn)\r\n return null;\r\n\r\n Debug.log('turnOffStudio', studio.studio, studio);\r\n return await PlayerApi.turnOffStudio(studio);\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('turnOffStudio', studio.studio, message);\r\n throw message;\r\n }\r\n }\r\n\r\n /*****************************************************************\r\n * Studio Mutations\r\n *\r\n *****************************************************************\r\n */\r\n\r\n @Mutation\r\n private commit_studios(studios: SUR.AzureStudioDto[]) {\r\n this.studios.splice(0, this.studios.length, ...studios);\r\n Debug.log('studio commit_studios', this.studios.length);\r\n }\r\n\r\n @Mutation\r\n private commit_create_studio(studio: SUR.AzureStudioDto) {\r\n Debug.log('commit_create_studio', studio.studioId, studio.studio);\r\n\r\n let found = this.studios.find(item => item.studioId == studio.studioId);\r\n\r\n // Sometimes store executes a double commit\r\n if (found) {\r\n Debug.log('commit_create_studio already exists', studio.studioId, studio.studio, found.studioId, found.studio);\r\n Object.assign(found, studio);\r\n }\r\n else {\r\n let idx = sortedIndexBy(this.studios, studio, item => item.title);\r\n if (idx != -1) {\r\n this.studios.splice(idx, 0, studio);\r\n } else {\r\n this.studios.push(studio);\r\n }\r\n }\r\n\r\n EventBus.Instance.$emit(EventBus.StudiosChanged, studio);\r\n\r\n return {\r\n studios: this.studios\r\n };\r\n }\r\n\r\n @Mutation\r\n private commit_edit_studio(studio: SUR.AzureStudioDto) {\r\n Debug.log('commit_edit_studio', studio.studioId, studio.studio);\r\n\r\n let found = this.studios.find(item => item.studioId == studio.studioId);\r\n\r\n if (!found) {\r\n Debug.error('commit_edit_studio missing studio', studio.studioId, studio.studio);\r\n throw \"Missing studio \" + studio.title;\r\n }\r\n\r\n Object.assign(found, studio);\r\n\r\n EventBus.Instance.$emit(EventBus.StudiosChanged, studio);\r\n\r\n return {\r\n studios: this.studios\r\n };\r\n }\r\n\r\n @Mutation\r\n private commit_delete_studio(studio: SUR.AzureStudioDto) {\r\n Debug.log('commit_delete_studio', studio.studioId, studio.studio);\r\n\r\n let found = this.studios.find(item => item.studioId == studio.studioId);\r\n\r\n if (!found) {\r\n Debug.error('commit_delete_studio missing studio', studio.studioId, studio.studio);\r\n throw \"Missing studio \" + studio.title;\r\n }\r\n\r\n let idx = this.studios.indexOf(found);\r\n this.studios.splice(idx, 1);\r\n EventBus.Instance.$emit(EventBus.StudiosChanged, studio);\r\n\r\n return {\r\n studios: this.studios\r\n };\r\n }\r\n}\r\n\r\nexport const StudioModule = getModule(Studio);\r\nDebug.setDebugModule('Studio', StudioModule);\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./app.scss?vue&type=style&index=0&prod&lang=scss&external\"","import { IPermissionDto, ICategoryDto, IVideo } from './interfaces';\r\n\r\nexport default class Globals {\r\n public static XboxResearch = \"Xbox Research Streaming\";\r\n public static EveryoneAtMicrosoft = \"(Everyone At Microsoft)\";\r\n public static GlobalEveryone = \"(Everyone Globally)\";\r\n public static AllStudios = \"_All_Studios_\";\r\n public static AllStudiosTitle = \"(All Studios)\";\r\n public static Microsoft = \"Microsoft\";\r\n\r\n public static get NewServerViewModel() {\r\n let serverViewModel: IServerViewModel = {\r\n expired: false,\r\n hostName: null,\r\n isAdmin: false,\r\n isTeamMember: false,\r\n isDeveloper: false,\r\n isSignedIn: false,\r\n isLimitedBrowser: false,\r\n debugMode: false,\r\n debugging: false,\r\n email: null,\r\n fullName: null,\r\n providerName: null,\r\n\r\n mute: false,\r\n notAuthorized: false,\r\n hideTopBar: false,\r\n };\r\n\r\n return Object.assign(serverViewModel, ServerData);\r\n }\r\n\r\n public static get NewStudio() {\r\n let model: SUR.AzureStudioDto = {\r\n studioId: 0,\r\n studio: null,\r\n title: null,\r\n isOwner: false,\r\n isAdmin: false,\r\n isDeveloper: false,\r\n logoFileName: null,\r\n backgroundFileName: null,\r\n categoryId: 0,\r\n category: null,\r\n categoryOrder: 0,\r\n disabled: false,\r\n liveOnly: false,\r\n noSecurity: false,\r\n isAllStudio: false,\r\n logoUrl: null,\r\n backgroundUrl: null,\r\n hasLogoImage: false,\r\n hasBackgroundImage: false,\r\n };\r\n\r\n return Object.assign({}, model);\r\n }\r\n\r\n public static get NewCategory() {\r\n let model: SUR.CategoryDto = {\r\n id: 0,\r\n name: null,\r\n order: 0,\r\n disabled: false\r\n };\r\n\r\n return Object.assign({}, model);\r\n }\r\n\r\n public static get NewICategoryDto() {\r\n\r\n let model: ICategoryDto = {\r\n id: 0,\r\n name: null,\r\n order: 0,\r\n disabled: false,\r\n errors: [],\r\n busy: false,\r\n canMoveUp: false,\r\n canMoveDown: false,\r\n };\r\n\r\n return Object.assign({}, model);\r\n }\r\n\r\n public static get NewPlaylist() {\r\n let model: SUR.PlayListModel = {\r\n hash: null,\r\n studio: null,\r\n lastModifiedTime: null,\r\n studies: [],\r\n liveVideos: [],\r\n playtests: [],\r\n videoCount: 0,\r\n liveVideoCount: 0,\r\n vodVideoCount: 0,\r\n };\r\n return Object.assign({}, model);\r\n }\r\n\r\n public static get NewPermission() {\r\n let model: IPermissionDto = {\r\n id: 0,\r\n studio: null,\r\n email: null,\r\n workEmail: null,\r\n title: null,\r\n company: null,\r\n provider: 'microsoftaccount',\r\n isGroup: false,\r\n isOwner: false,\r\n isAdmin: false,\r\n isAllStudio: false,\r\n roleType: null,\r\n accessType: null,\r\n role: 'user',\r\n studioTitle: null,\r\n busy: false\r\n };\r\n return model;\r\n }\r\n\r\n public static get NewRequestAccess() {\r\n let model: SUR.RequestAccessDto = {\r\n //creationDate: null,\r\n confirmationId: null,\r\n //result: 0,\r\n approved: false,\r\n confirmed: false,\r\n isEmployee: false,\r\n pendingApprovalId: 0,\r\n businessJustification: null,\r\n changedBy: null,\r\n company: null,\r\n email: null,\r\n fullName: null,\r\n provider: null,\r\n studio: null,\r\n studioTitle: null,\r\n workEmail: null,\r\n noAuth: false,\r\n sendGridEmail: null,\r\n sendGridFrom: null\r\n };\r\n\r\n return Object.assign({}, model);\r\n }\r\n\r\n public static get NewVideo() {\r\n\r\n let model: IVideo = {\r\n study: null,\r\n studio: null,\r\n title: null,\r\n tooltip: null,\r\n id: null,\r\n isLive: false,\r\n creationDate: 0,\r\n streamUrl: null,\r\n captions: [],\r\n filter: null,\r\n filterName: null,\r\n azure: false,\r\n\r\n // Local data\r\n testPlaybackUrl: null,\r\n token: null,\r\n player: null,\r\n busy: false,\r\n downloadUrl: null,\r\n disableDownload: false,\r\n dontPlay: false,\r\n downloadCaptionsUrl: null,\r\n downloadProgress: 0,\r\n captionsProgress: 0,\r\n autoMuted: false,\r\n };\r\n\r\n return Object.assign({}, model);\r\n }\r\n\r\n\r\n}\r\n\r\nexport interface ErrorType {\r\n message:string\r\n}\r\n\r\n// ReSharper disable InconsistentNaming\r\nexport enum VideoPlayerState {\r\n NONE = 0,\r\n LOADING = 1,\r\n READY = 2,\r\n PLAYING = 3,\r\n PAUSED = 4,\r\n ENDED = 5,\r\n ERROR = 6,\r\n}\r\n// ReSharper restore InconsistentNaming\r\n\r\n","import $ from 'jquery';\r\nimport Util from './utility';\r\n\r\nlet isMobile = {\r\n Android: function () {\r\n return navigator.userAgent.match(/Android/i);\r\n },\r\n BlackBerry: function () {\r\n return navigator.userAgent.match(/BlackBerry/i);\r\n },\r\n iOS: function () {\r\n return navigator.userAgent.match(/iPhone|iPad|iPod/i);\r\n },\r\n Opera: function () {\r\n return navigator.userAgent.match(/Opera Mini/i);\r\n },\r\n Windows: function () {\r\n return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i);\r\n },\r\n any: function () {\r\n return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());\r\n }\r\n};\r\n\r\nfunction getIEVersion() {\r\n var ua = window.navigator.userAgent;\r\n if (ua.indexOf(\"Trident/7.0\") > 0)\r\n return 11;\r\n else if (ua.indexOf(\"Trident/6.0\") > 0)\r\n return 10;\r\n else if (ua.indexOf(\"Trident/5.0\") > 0)\r\n return 9;\r\n else\r\n return 0; // not IE9, 10 or 11\r\n}\r\n\r\nfunction isEdge() {\r\n try {\r\n return window.navigator.userAgent.indexOf(\"Edge\") > -1;\r\n } catch (e) {\r\n return false;\r\n }\r\n}\r\n\r\nfunction parseValue(s: string) {\r\n if (s.indexOf('\"') === 0) {\r\n // This is a quoted cookie as according to RFC2068, unescape...\r\n s = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\r\n }\r\n\r\n try {\r\n var pluses = /\\+/g;\r\n // Replace server-side written pluses with spaces.\r\n // If we can't decode the cookie, ignore it, it's unusable.\r\n // If we can't parse the cookie, ignore it, it's unusable.\r\n s = decodeURIComponent(s.replace(pluses, ' '));\r\n return JSON.parse(s);\r\n } catch (e) { }\r\n}\r\n\r\nexport default class Browser {\r\n static isMobile = isMobile;\r\n static isEdge = isEdge;\r\n static getIEVersion = getIEVersion;\r\n\r\n static setStorageItem(key: string, value: any) {\r\n try {\r\n var valueToSave = Browser.encode(JSON.stringify(value));\r\n window.localStorage.setItem(Browser.encode(key), valueToSave);\r\n } catch (e) {\r\n return;\r\n }\r\n }\r\n\r\n static getStorageItem(key: string, defaultValue: any = null): any {\r\n try {\r\n //console.log(encode(key), window.localStorage.getItem(encode(key)));\r\n var value = window.localStorage.getItem(Browser.encode(key));\r\n if (value) {\r\n value = parseValue(Browser.decode(value));\r\n if (value)\r\n return value;\r\n }\r\n\r\n return defaultValue;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n static getStorageBool(key: string, defaultValue: boolean = false) {\r\n defaultValue = defaultValue || false;\r\n const value = Browser.getStorageItem(key, defaultValue);\r\n if (value && value != undefined)\r\n return value === true || value == 'true' || value == '1';\r\n return false;\r\n }\r\n\r\n static dumpParentWindows(header) {\r\n let previousElem = null;\r\n let elem = document.getElementById(\"placeholder-image\");\r\n if (!elem)\r\n elem = document.body;\r\n\r\n let idx = 0;\r\n while (elem && elem != previousElem) {\r\n Debug.log(header, \"parent\", idx, elem, previousElem);\r\n previousElem = elem;\r\n elem = elem.parentElement;\r\n idx++;\r\n }\r\n }\r\n\r\n static resizeText($elem, width) {\r\n // hard code font-sizes\r\n if (width <= 240) {\r\n $elem.css(\"font-size\", 10);\r\n }\r\n }\r\n\r\n static rescaleRootFontSize(desiredWidth, defaultWidth, defaultFontSize, minFontSize = 4) {\r\n try {\r\n // Adjust root font-size to allow rem css font-size elements to be scaled appropriately\r\n let ratio = desiredWidth / defaultWidth;\r\n let fontSize = defaultFontSize * ratio;\r\n fontSize = Math.max(minFontSize, fontSize);\r\n $('html').css('font-size', fontSize + 'px');\r\n } catch (e) {\r\n Debug.error(\"rescaleRootFontSize\", e);\r\n }\r\n }\r\n\r\n static copyToClipboard(value: string, message: string = null) {\r\n message = message || 'Copied to clipboard';\r\n\r\n let $textArea = $('#copyToClipboard');\r\n $textArea.text(value);\r\n\r\n let textArea = $textArea[0];\r\n $textArea.removeAttr('disabled');\r\n textArea.focus();\r\n textArea.select();\r\n\r\n document.execCommand(\"Copy\");\r\n Util.showToast(message);\r\n\r\n $textArea.attr('disabled', 'disabled');\r\n }\r\n\r\n static encode(s: string) {\r\n return encodeURIComponent(s);\r\n }\r\n\r\n static decode(s: string) {\r\n return decodeURIComponent(s);\r\n }\r\n\r\n static _getRouteParam($route: any, key: string, defaultValue: any) {\r\n if ($route) {\r\n\r\n if ($route.params) {\r\n let value = $route.params[key] || null;\r\n if (value && value != '')\r\n return value;\r\n }\r\n\r\n if ($route.query) {\r\n let value = $route.query[key] || null;\r\n if (value && value != '')\r\n return value;\r\n }\r\n\r\n return Browser.getParam(key, defaultValue);\r\n }\r\n }\r\n\r\n static getRouteParam($route: any, key: string, defaultValue: T): T {\r\n let value = Browser._getRouteParam($route, key, defaultValue);\r\n if (value && value != '') {\r\n if (typeof defaultValue == 'boolean') {\r\n return (value == '1' || value == 'true');\r\n }\r\n\r\n if (typeof defaultValue == 'number') {\r\n return (parseInt(value, 10));\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n static getRouteParamEscaped($route: any, key: string, defaultValue: any): string {\r\n let value = Browser._getRouteParam($route, key, defaultValue);\r\n\r\n if (value && value != defaultValue)\r\n return decodeURI(value);\r\n\r\n return value;\r\n }\r\n\r\n static getBoolRouteParam($route: any, key: string, defaultValue: boolean): boolean {\r\n let value = Browser._getRouteParam($route, key, defaultValue);\r\n return value == 'true' || value == '1';\r\n }\r\n\r\n static getIntRouteParam($route: any, key: string, defaultValue: number): number {\r\n let value = Browser._getRouteParam($route, key, defaultValue);\r\n return parseInt(value, 10);\r\n }\r\n\r\n static getParam(key: string, defaultValue: any) {\r\n try {\r\n key = key.toLowerCase();\r\n\r\n let queryStr = window.location.search || null;\r\n\r\n // vue router doesn not populate the window.location.search\r\n if (!queryStr) {\r\n queryStr = window.location.href || '';\r\n let idx = queryStr.indexOf('?')\r\n if (idx == -1)\r\n return defaultValue;\r\n queryStr = queryStr.substr(idx);\r\n }\r\n\r\n var params = queryStr.replace(\"?\", \"\");\r\n var idx = queryStr.toLowerCase().replace(\"?\", \"\").indexOf(key + '=');\r\n if (idx != -1) {\r\n idx += key.length + 1;\r\n var idxEnd = params.indexOf('&', idx);\r\n if (idxEnd == -1)\r\n idxEnd = params.length;\r\n var value = params.substr(idx, idxEnd - idx);\r\n if (value && value != \"\")\r\n return value;\r\n }\r\n } catch (e) {\r\n console.error(\"getParam error\", e);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n static getParamEscaped(key: string, defaultValue: any = null) {\r\n let value = Browser.getParam(key, defaultValue);\r\n if (value && value != defaultValue) {\r\n return decodeURI(value);\r\n }\r\n return value;\r\n }\r\n\r\n static getBoolParam(key: string, defaultValue: boolean = false) {\r\n try {\r\n var value = Browser.getParam(key, \"\");\r\n if (value == \"\")\r\n return defaultValue;\r\n return value == \"true\" || value == \"1\";\r\n } catch (e) {\r\n console.error(\"getBoolParam error\", e);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n static getIntParam(key: string, defaultValue: number = 0) {\r\n try {\r\n var value = Browser.getParam(key, \"\");\r\n if (value == \"\")\r\n return defaultValue;\r\n return parseInt(value, 10);\r\n } catch (e) {\r\n console.error(\"getIntParam error\", e);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n\r\n}\r\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","import Vue from 'vue';\r\nimport VueRouter from 'vue-router';\r\nimport Globals from './globals';\r\n\r\nVue.use(VueRouter);\r\n\r\nconst homeSettings = {\r\n component: 'settings',\r\n ownerRequired: true\r\n};\r\n\r\nconst studioSettings = {\r\n component: 'studioSettings',\r\n ownerRequired: true\r\n};\r\n\r\nexport const routes = [\r\n {\r\n path: '/',\r\n component: ServerData.isTeamMember ? () => import('@/views/teamStudioList/teamStudioList.vue') : () => import('@/views/studioList/studioList'),\r\n display: Globals.XboxResearch,\r\n meta: {\r\n title: Globals.XboxResearch,\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Studio/:studio',\r\n component: () => import('@/views/playerPage/playerPage.vue'),\r\n display: 'Portal',\r\n meta: {\r\n title: 'Portal',\r\n settings: studioSettings\r\n }\r\n },\r\n {\r\n path: '/PendingApprovals',\r\n component: () => import('@/views/pendingApprovals/pendingApprovals.vue'),\r\n display: 'Pending Approvals',\r\n meta: {\r\n title: 'Pending Approvals',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Permissions',\r\n component: () => import('@/views/permissionsReport/permissionsReport.vue'),\r\n display: 'Permissions',\r\n meta: {\r\n title: 'Permissions',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Permissions/:studio',\r\n component: () => import('@/views/permissionsReport/permissionsReport.vue'),\r\n display: 'Permissions',\r\n meta: {\r\n title: 'Permissions',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Uploads',\r\n component: () => import('@/views/uploadsReport/uploadsReport.vue'),\r\n display: 'Uploads',\r\n meta: {\r\n title: 'Uploads',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Uploads/:studio',\r\n component: () => import('@/views/uploadsReport/uploadsReport.vue'),\r\n display: 'Uploads',\r\n meta: {\r\n title: 'Uploads',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Usage',\r\n component: () => import('@/views/usageReport/usageReport.vue'),\r\n display: 'Usage',\r\n meta: {\r\n title: 'Usage',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Usage/:studio',\r\n component: () => import('@/views/usageReport/usageReport.vue'),\r\n display: 'Usage',\r\n meta: {\r\n title: 'Usage',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Videos',\r\n component: () => import('@/views/videosReport/videosReport.vue'),\r\n display: 'Videos',\r\n meta: {\r\n title: 'Videos',\r\n settings: homeSettings\r\n }\r\n },\r\n {\r\n path: '/Videos/:studio',\r\n component: () => import('@/views/videosReport/videosReport.vue'),\r\n display: 'Videos',\r\n meta: {\r\n title: 'Videos',\r\n settings: homeSettings\r\n }\r\n },\r\n\r\n // ------------------------\r\n // UnSecure routes\r\n // ------------------------\r\n\r\n {\r\n path: '/RequestAccess/:studio',\r\n component: () => import('@/views/requestAccess/requestAccess.vue'),\r\n display: 'Request Access',\r\n meta: { title: 'Request Access', hidePrivacy: true, unSecure: true }\r\n },\r\n {\r\n path: '/AwaitingApproval/:studio',\r\n component: () => import('@/views/awaitingApproval/awaitingApproval.vue'),\r\n display: 'Awaiting Approval',\r\n meta: { title: 'Awaiting Approval', unSecure: true }\r\n },\r\n {\r\n path: '/ConfirmEmailError/:id',\r\n component: () => import('@/views/confirmEmailError/confirmEmailError.vue'),\r\n display: 'Confirm Email Error',\r\n meta: { title: 'Confirm Email Error', unSecure: true }\r\n },\r\n {\r\n path: '/Login',\r\n component: () => import('@/views/login/login.vue'),\r\n display: 'Sign In',\r\n meta: { title: 'Sign In', unSecure: true }\r\n },\r\n {\r\n path: '/Expired',\r\n component: () => import('@/views/expired/expired.vue'),\r\n display: 'Expired Session',\r\n meta: { title: 'Expired Session', unSecure: true }\r\n },\r\n {\r\n path: '/NotAuthorized',\r\n component: () => import('@/views/notAuthorized/notAuthorized.vue'),\r\n display: 'Not Authorized',\r\n meta: { title: 'Not Authorized', unSecure: true }\r\n },\r\n {\r\n path: '*',\r\n component: () => import('@/views/error/error.vue'),\r\n display: 'Error',\r\n meta: { title: 'Error', unSecure: true }\r\n },\r\n\r\n];\r\n\r\nexport default new VueRouter({\r\n mode: 'history',\r\n base: '/',\r\n routes: routes,\r\n linkActiveClass: '',\r\n linkExactActiveClass: 'router-active'\r\n});\r\n","import Globals from '@/globals';\r\nimport PlayerUtil from './playerUtil';\r\nimport Util from './utility';\r\nimport { IVideo } from '@/interfaces';\r\nimport { ServerDataModule } from '@/store/serverData';\r\n\r\nexport default class PlayerApi {\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Player APIs */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n static getStreamUrl(video: IVideo) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);\r\n\r\n return PlayerApi.postApiRequest('getStreamUrl', '/api/Player/Stream', params);\r\n }\r\n\r\n static checkStream(video: IVideo) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);\r\n\r\n return PlayerApi.postApiRequest('checkStream', '/api/Player/StreamExists', params);\r\n }\r\n\r\n static deleteVideo(video: IVideo) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);;\r\n\r\n return PlayerApi.postApiRequest('deleteVideo', '/api/Player/DeleteVideo', params);\r\n }\r\n\r\n static recreateCaptions(video: IVideo, recreate: boolean) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);\r\n params.recreate = recreate;\r\n\r\n return PlayerApi.postApiRequest('recreateCaptions', '/api/Player/RecreateCaptions', params);\r\n }\r\n\r\n // ReSharper disable once InconsistentNaming\r\n static recreateMP4(video: IVideo, recreate: boolean) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);\r\n params.recreate = recreate;\r\n\r\n return PlayerApi.postApiRequest('recreateMP4', '/api/Player/RecreateMP4', params);\r\n }\r\n\r\n static renameAsset(video: IVideo) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);\r\n\r\n return PlayerApi.postApiRequest('renameAsset', '/api/Player/RenameAsset', params);\r\n }\r\n\r\n static resetAsset(video: IVideo) {\r\n let params = PlayerUtil.videoToStreamApiDto(video);\r\n\r\n return PlayerApi.postApiRequest('resetAsset', '/api/Player/ResetAsset', params);\r\n }\r\n\r\n static resetStudioAssets(studio: string) {\r\n let params = {\r\n studio: studio,\r\n stream: 'unused',\r\n };\r\n\r\n return PlayerApi.postApiRequest('resetStudioAssets', '/api/Player/ResetStudioAssets/' + studio, params);\r\n }\r\n\r\n static getUploadUrl(studio: string, study: string, streamName: string, title: string) {\r\n let params = {\r\n studio: studio,\r\n study: study,\r\n stream: streamName,\r\n title: title,\r\n };\r\n\r\n return PlayerApi.postApiRequest('getUploadUrl', '/api/Player/GetUploadUrl', params);\r\n }\r\n\r\n static getUploadTitles(studio: string, videos: SUR.StreamApiDto[]) {\r\n let params = {\r\n studio: studio,\r\n streams: videos,\r\n };\r\n\r\n return PlayerApi.postApiRequest('getUploadTitles', '/api/Player/GetUploadTitles', params);\r\n }\r\n\r\n static encodeUploadedVideo(uploadInfo: SUR.UploadUrlDto) {\r\n let params = uploadInfo;\r\n\r\n return PlayerApi.postApiRequest('encodeUploadedVideo', '/api/Player/EncodeUploadedVideo', params);\r\n }\r\n\r\n static checkBackgroundJob(encodeInfo: SUR.BackgroundJobDto) {\r\n let params = encodeInfo;\r\n\r\n return PlayerApi.postApiRequest('checkBackgroundJob', '/api/Player/CheckBackgroundJob', params);\r\n }\r\n\r\n static uploadVideosList(studio: string) {\r\n return PlayerApi.postApiRequest('uploadVideosList', '/api/Player/UploadVideosList/' + studio, {});\r\n }\r\n\r\n static playList(model: SUR.PlaylistDto) {\r\n return PlayerApi.postApiRequest('playList', '/api/Player/PlayList', model);\r\n }\r\n\r\n static liveAssets(model: SUR.PlaylistDto) {\r\n return PlayerApi.postApiRequest('getLiveAssets', '/api/Player/GetLiveAssets', model);\r\n }\r\n\r\n static createFilter(model: SUR.CreateFilterDto) {\r\n let params = model;\r\n\r\n return PlayerApi.postApiRequest('createFilter', '/api/Player/CreateFilter', params);\r\n }\r\n\r\n static loginSession(studio: string) {\r\n return PlayerApi.postApiRequest('loginSession', '/api/Player/LoginSession/' + studio, {});\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Studio APIs */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static studioList(studio: string = null) {\r\n let params = {\r\n };\r\n\r\n let studioArg = studio ? '/' + studio : '';\r\n\r\n return PlayerApi.postApiRequest('studioList', '/api/Studio/StudioList' + studioArg, params);\r\n }\r\n\r\n static createStudio(studio: SUR.AzureStudioDto) {\r\n return PlayerApi.postApiRequest('addNewStudio', '/api/Studio/CreateStudio', studio);\r\n }\r\n\r\n static editStudio(studio: SUR.AzureStudioDto) {\r\n return PlayerApi.postApiRequest('editStudio', '/api/Studio/EditStudio', studio);\r\n }\r\n\r\n static turnOffStudio(studio: SUR.AzureStudioDto) {\r\n return PlayerApi.postApiRequest('turnOffStudio', '/api/Studio/TurnOffStudio', studio);\r\n }\r\n\r\n static uploadLogo(file: any) {\r\n let params = file;\r\n\r\n return PlayerApi.postApiRequest('uploadLogo', '/api/Studio/UploadLogo', params, {\r\n method: 'POST',\r\n url: '/api/Studio/UploadLogo',\r\n data: params,\r\n json: false,\r\n jsonResponse: true,\r\n showError: false,\r\n headers: null,\r\n noCredentials: false,\r\n });\r\n }\r\n\r\n static uploadBackground(file: any) {\r\n let params = file;\r\n\r\n return PlayerApi.postApiRequest('uploadBackground', '/api/Studio/UploadBackground', params, {\r\n method: 'POST',\r\n url: '/api/Studio/UploadBackground',\r\n data: params,\r\n json: false,\r\n jsonResponse: true,\r\n showError: false,\r\n headers: null,\r\n noCredentials: false,\r\n });\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Permissions APIs */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n static getPendingApprovals(studio: string) {\r\n let params = {\r\n studio: studio,\r\n };\r\n\r\n return PlayerApi.postApiRequest('getPendingApprovals', '/api/Permissions/PendingApprovalsList', params);\r\n }\r\n\r\n static approvePendingApproval(approval: SUR.PendingApprovalDto) {\r\n let params = approval;\r\n\r\n return PlayerApi.postApiRequest('approvePendingApproval', '/api/Permissions/ApprovePendingApproval', params);\r\n }\r\n\r\n static denyPendingApproval(approval: SUR.PendingApprovalDto) {\r\n let params = approval;\r\n\r\n return PlayerApi.postApiRequest('denyPendingApproval', '/api/Permissions/DenyPendingApproval', params);\r\n }\r\n\r\n static permissionsList(studio: string, limit: number = 0) {\r\n let params = {\r\n studio: studio,\r\n limit: limit,\r\n };\r\n\r\n return PlayerApi.postApiRequest('permissionsList', '/api/Permissions/PermissionsList/' + (studio || ''), params);\r\n }\r\n\r\n static removePermission(studio: string, permission: SUR.PermissionDto) {\r\n let params = {\r\n studio: studio,\r\n permission: permission,\r\n };\r\n\r\n return PlayerApi.postApiRequest('removePermission', '/api/Permissions/RemovePermission', params);\r\n }\r\n\r\n static async addPermissionWorker(studio: string, newUser) {\r\n let isGroup = newUser.provider == 'group';\r\n if (isGroup) {\r\n newUser.provider = 'aad';\r\n }\r\n\r\n let permission = {\r\n id: 0,\r\n studio: studio,\r\n email: newUser.email || null,\r\n workEmail: newUser.workEmail || null,\r\n title: newUser.name || null,\r\n company: newUser.company || null,\r\n provider: newUser.provider || null,\r\n isGroup: isGroup || false,\r\n isOwner: newUser.role == 'owner',\r\n isAdmin: false,\r\n roleType: null,\r\n accessType: null,\r\n busy: true,\r\n isAllStudio: false,\r\n };\r\n\r\n if (PlayerUtil.isSpecialGroup(permission.title)) {\r\n permission.email = null;\r\n permission.workEmail = null;\r\n permission.company = null;\r\n permission.isGroup = true;\r\n permission.isOwner = false;\r\n\r\n if (newUser.name.toLowerCase() != Globals.EveryoneAtMicrosoft.toLowerCase())\r\n permission.provider = null;\r\n }\r\n\r\n try {\r\n let response = await PlayerApi.addPermission(studio, permission);\r\n\r\n Debug.log('addPermissionWorker', response, permission);\r\n return response;\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Util.showError('Failed to add permission for ' + permission.title + \" error: \" + message);\r\n return null;\r\n } finally {\r\n permission.busy = false;\r\n }\r\n }\r\n\r\n static addPermission(studio: string, permission: SUR.PermissionDto) {\r\n let params = {\r\n studio: studio,\r\n permission: permission,\r\n };\r\n\r\n return PlayerApi.postApiRequest('addPermission', '/api/Permissions/AddPermission', params);\r\n }\r\n\r\n static requestAccess(params: SUR.RequestAccessDto) {\r\n return PlayerApi.postApiRequest('requestAccess', '/api/Permissions/RequestAccess', params);\r\n }\r\n\r\n static requestAccessData(studio: string) {\r\n return PlayerApi.postApiRequest('requestAccessData', '/api/Permissions/RequestAccessData/' + studio, {});\r\n }\r\n\r\n static requestAccessConfirmationData(id: string) {\r\n return PlayerApi.postApiRequest('requestAccessConfirmationData', '/api/Permissions/RequestAccessConfirmationData/' + id, {});\r\n }\r\n\r\n static checkStudioAccess(studio: string) {\r\n let params = {\r\n studio: studio,\r\n };\r\n\r\n return PlayerApi.postApiRequest('checkStudioAccess', '/api/Permissions/CheckStudioAccess', params);\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Category APIs */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static categoriesList() {\r\n let params = {\r\n };\r\n\r\n return PlayerApi.postApiRequest('categoriesList', '/api/Category/CategoriesList', params);\r\n }\r\n\r\n static createCategory(category: SUR.CategoryDto) {\r\n let params = category;\r\n\r\n return PlayerApi.postApiRequest('createCategory', '/api/Category/CreateCategory', params);\r\n }\r\n\r\n static editCategory(category: SUR.CategoryDto) {\r\n let params = category;\r\n\r\n return PlayerApi.postApiRequest('editCategory', '/api/Category/EditCategory', params);\r\n }\r\n\r\n static deleteCategory(category: SUR.CategoryDto) {\r\n let params = category;\r\n\r\n return PlayerApi.postApiRequest('deleteCategory', '/api/Category/DeleteCategory', params);\r\n }\r\n\r\n static moveCategoryUp(category: SUR.CategoryDto) {\r\n let params = category;\r\n\r\n return PlayerApi.postApiRequest('moveCategoryUp', '/api/Category/MoveCategoryUp', params);\r\n }\r\n\r\n static moveCategoryDown(category: SUR.CategoryDto) {\r\n let params = category;\r\n\r\n return PlayerApi.postApiRequest('moveCategoryDown', '/api/Category/MoveCategoryDown', params);\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Admin APIs */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static resetAssets(studio: string = '') {\r\n let params = {};\r\n return PlayerApi.postApiRequest('resetAssets', '/api/Admin/ResetAssets/' + studio, params);\r\n }\r\n\r\n static resetStudios() {\r\n let params = {};\r\n return PlayerApi.postApiRequest('resetStudios', '/api/Admin/ResetStudios', params);\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Video */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static videoList(studio: string = null, limit: number = 0) {\r\n let params = {\r\n studio: studio,\r\n limit: limit\r\n };\r\n return PlayerApi.postApiRequest('videos', '/api/Video/VideoList/' + (studio || ''), params);\r\n }\r\n\r\n static changeVideoCreationDate(video: SUR.VideoDto) {\r\n let params = video;\r\n return PlayerApi.postApiRequest('changeVideoCreationDate', '/api/Video/ChangeVideoCreationDate', params);\r\n }\r\n\r\n static deleteAdminVideo(video: SUR.VideoDto) {\r\n let params = video;\r\n Debug.log('deleteAdminVideo', Util.dumpJson(params));\r\n\r\n return PlayerApi.postApiRequest('deleteAdminVideo', '/api/Video/DeleteVideo', params);\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Upload */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static uploadList(studio: string = null, study: string = null, limit: number = 0) {\r\n let params = {\r\n studio: studio,\r\n study: study,\r\n limit: limit\r\n };\r\n return PlayerApi.postApiRequest('uploads', '/api/Uploads/UploadList/' + (studio || ''), params);\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Usage */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static usageList(studio: string = null, allData = false, limit = 0, externalUsersOnly = false) {\r\n let params = {\r\n studio: studio,\r\n allData: allData,\r\n limit: limit,\r\n externalUsersOnly: externalUsersOnly\r\n };\r\n return PlayerApi.postApiRequest('usageList', '/api/Usage/UsageList/' + (studio || ''), params);\r\n }\r\n\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n /* Misc */\r\n /* ************************************************************** */\r\n /* ************************************************************** */\r\n\r\n static postApiRequest(method, url, params: any = {}, options: any = null) {\r\n try {\r\n if (ServerData.expired || ServerDataModule.serverData.expired)\r\n throw new Error('EXPIRED');\r\n\r\n let headers = {\r\n RequestVerificationToken: window.sessionStorage.getItem('requestVerificationToken'),\r\n TabSessionId: window.sessionStorage.getItem('tabSessionId'),\r\n };\r\n\r\n return Util.postUrl(url, params, headers, false, options).then(data => {\r\n return PlayerApi.processApiRespose(method, url, data);\r\n });\r\n\r\n } catch (e) {\r\n Debug.error(method + \" error\", e);\r\n throw e;\r\n }\r\n }\r\n\r\n static processApiRespose(method: string, url: string, data: SUR.Success) {\r\n //Debug.log('processApiResponse', method, url, data);\r\n\r\n if (!data) {\r\n Debug.error(method, url, 'NO_DATA');\r\n throw new Error('NO_DATA');\r\n }\r\n\r\n if (data.expired) {\r\n PlayerApi.handleExpiredResponse();\r\n throw new Error('EXPIRED');\r\n }\r\n\r\n if (data.message == 'Not Authorized') {\r\n PlayerApi.handleNotAuthorizedResponse();\r\n throw new Error('NOT_AUTHORIZED');\r\n }\r\n\r\n if (!data.status) {\r\n Debug.error(method, url, data.message || 'FAILED');\r\n throw new Error(data.message || 'FAILED');\r\n }\r\n\r\n if (!data.result) {\r\n Debug.error(method, url, 'NO_RESPONSE');\r\n throw new Error('NO_RESPONSE');\r\n }\r\n\r\n return data.result;\r\n }\r\n\r\n public static handleExpiredResponse() {\r\n if (ServerDataModule.serverData.expired) return;\r\n ServerData.expired = true;\r\n\r\n let serverData = Object.assign({}, ServerDataModule.serverData);\r\n serverData.expired = true;\r\n ServerDataModule.editServerData(serverData);\r\n\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n Debug.error('EXPIRED **************');\r\n }\r\n\r\n public static handleNotAuthorizedResponse() {\r\n if (ServerDataModule.serverData.notAuthorized) return;\r\n\r\n let serverData = Object.assign({}, ServerDataModule.serverData);\r\n serverData.notAuthorized = true;\r\n ServerDataModule.editServerData(serverData);\r\n\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n Debug.error('NOT_AUTHORIZED **************');\r\n }\r\n\r\n}\r\n\r\n","import LocalData from './localStorage';\r\nimport { ServerDataModule } from '@/store/serverData';\r\n\r\nexport default class SigninUtil {\r\n\r\n public static getProvider() {\r\n let signin = LocalData.get(LocalData.SigninKey, null);\r\n if (signin && signin.provider)\r\n return signin.provider;\r\n\r\n return null;\r\n }\r\n\r\n public static saveProvider(provider) {\r\n Debug.log('SigninUtil saveProvider', provider);\r\n LocalData.save(LocalData.SigninKey, { provider: provider });\r\n }\r\n\r\n public static clear() {\r\n LocalData.remove(LocalData.SigninKey);\r\n }\r\n\r\n public static redirectToProvider(redirectUrl: string) {\r\n redirectUrl = redirectUrl || '%2F';\r\n\r\n let signin = LocalData.get(LocalData.SigninKey, null);\r\n if (!signin || !signin.provider)\r\n return false;\r\n\r\n Debug.log('redirectToProvider', signin.provider, redirectUrl);\r\n\r\n let urlParam = '';\r\n switch (signin.provider) {\r\n case \"Azure Active Directory\":\r\n urlParam = 'aad';\r\n break;\r\n\r\n case \"Microsoft\":\r\n urlParam = 'microsoftaccount';\r\n break;\r\n\r\n default:\r\n return false;\r\n }\r\n\r\n let url = window.location.origin + '/.auth/login/' + urlParam + '?post_login_redirect_url=' + redirectUrl;\r\n\r\n // clear provider - will be set again on successful signin\r\n SigninUtil.saveProvider(null);\r\n\r\n Debug.log('redirectToProvider', signin.provider, url);\r\n window.location.href = url;\r\n return true;\r\n }\r\n\r\n private static getRedirectUrl(redirectUrl: string) {\r\n if (!redirectUrl || redirectUrl == '/' || redirectUrl == '%2F') {\r\n return '';\r\n }\r\n\r\n // Trim trailing /\r\n while (redirectUrl && redirectUrl.endsWith('/')) {\r\n redirectUrl = redirectUrl.substr(0, redirectUrl.length - 1);\r\n }\r\n\r\n while (redirectUrl && redirectUrl.startsWith('/')) {\r\n redirectUrl = redirectUrl.substr(1);\r\n }\r\n\r\n // prevent double slash\r\n redirectUrl.replace('%2F/', '/').replace('/%2F', '/');\r\n return redirectUrl;\r\n }\r\n\r\n}\r\n\r\n","//import { Promise } from 'es6-promise';\r\nimport moment from 'moment';\r\nimport toastr from 'toastr';\r\nimport { ServerDataModule } from '@/store/serverData';\r\n\r\n//let es6polyfill = require('es6-promise');\r\n//es6polyfill.polyfill();\r\n//require('isomorphic-fetch');\r\n\r\ninterface IPostOptions {\r\n method: string,\r\n url: string,\r\n data: any,\r\n json: boolean;\r\n jsonResponse: boolean;\r\n showError: boolean;\r\n headers: any;\r\n noCredentials: boolean;\r\n}\r\n\r\nlet DefaultPostOptions: IPostOptions = {\r\n method: 'POST',\r\n url: null,\r\n data: {},\r\n json: true,\r\n jsonResponse: true,\r\n showError: false,\r\n headers: {},\r\n noCredentials: false,\r\n};\r\n\r\ndeclare global {\r\n interface Array {\r\n forEachAsync(callback: Function);\r\n }\r\n};\r\n\r\nexport default class Util {\r\n\r\n static stringCompare(left: string, right: string) {\r\n if (left && right) {\r\n return 0 == left.localeCompare(right, 'en', { sensitivity: 'base' });\r\n }\r\n\r\n if (!left && !right)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n static getRouteInfo(href: string) {\r\n var info = {\r\n href: href,\r\n relativeHref: href,\r\n controller: null,\r\n title: null,\r\n };\r\n\r\n var idx = href.indexOf(\"#/\");\r\n if (idx != -1) {\r\n href = href.substr(idx + 2);\r\n\r\n if (href) {\r\n info.href = href;\r\n\r\n var parts = href.split('/');\r\n info.relativeHref = parts.join('/');\r\n info.controller = parts[0];\r\n info.title = parts.join(' ');\r\n }\r\n }\r\n return info;\r\n }\r\n\r\n // -_./\\ {space} are all seperators\r\n static sanitizeName(value: string) {\r\n if (value)\r\n return value.replace(/([^ a-z0-9._-]+)/gi, '-').replace(/\\s*$/, \"\");\r\n return null;\r\n }\r\n\r\n // -_./\\ {space} are all seperators\r\n static sanitizeCompany(value: string) {\r\n if (value)\r\n return value.replace(/([^ a-z0-9!@#&()._-]+)/gi, '-').replace(/\\s*$/, \"\");\r\n return null;\r\n }\r\n\r\n // -_./\\ {space} are all seperators\r\n static sanitizeSentence(value: string) {\r\n if (value)\r\n return value.replace(/([^ a-z0-9\\'!@#$%&*()._/-]+)/gi, '-').replace(/\\s*$/, \"\");\r\n return null;\r\n }\r\n\r\n // -_./\\ are all seperators\r\n static sanitizeId(value: string) {\r\n if (value)\r\n return value.replace(/([^a-z0-9._-]+)/gi, '');\r\n return null;\r\n }\r\n\r\n static sanitizeEmail(value: string) {\r\n if (value)\r\n return value.replace(/([^@a-z0-9._-]+)/gi, '');\r\n return null;\r\n }\r\n\r\n static sanitizeIpAddress(value: string) {\r\n if (value)\r\n return value.replace(/([^0-9.]+)/gi, '');\r\n return null;\r\n }\r\n\r\n /**\r\n * Sanitize fiter name - all valid special characters: #$%()*+-.<=>@^_`{}~:\r\n * Playable but need escape codes: #%)+ - fails to delete though.\r\n * But only use which don't require html escape codes\r\n */\r\n static sanitizeFilterName(value: string) {\r\n if (value)\r\n //return value.replace(/([^a-z0-9#$%()*+.<=>@\\^_`{}:~-]+)/gi, '');\r\n return value.replace(/([^a-z0-9$(*.<=>@^_`{}:~-]+)/gi, '');\r\n return null;\r\n }\r\n\r\n // 08/30/2016 8:48 PM\r\n static sanitizeDateTime(value: string) {\r\n if (value) {\r\n //return value.replace(/[^\\d\\d?\\/\\d\\d?\\/\\d\\d\\d\\d \\d\\d?:\\d\\d (AM|PM)]/gi, '')\r\n var result = value.match(/\\d\\d?\\/\\d\\d?\\/\\d\\d\\d\\d \\d\\d?:\\d\\d (AM|PM)/gi);\r\n if (result && result.length > 0)\r\n return result[0];\r\n }\r\n return null;\r\n }\r\n\r\n static isValidEmail(value: string) {\r\n let re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(value);\r\n }\r\n\r\n static isValidDateTime(value: string) {\r\n return value && value.match(/\\d\\d?\\/\\d\\d?\\/\\d\\d\\d\\d \\d\\d?:\\d\\d (AM|PM)/gi) != null;\r\n }\r\n\r\n static isValidName(value: string) {\r\n return value\r\n && value.length >= 2\r\n && value.length <= 30\r\n && value == Util.sanitizeName(value);\r\n }\r\n\r\n static isValidNameOrNull(value: string) {\r\n return !value ||\r\n (value.length >= 2\r\n && value.length <= 30\r\n && value == Util.sanitizeName(value));\r\n }\r\n\r\n static isValidId(value: string) {\r\n return value\r\n && value.length >= 2\r\n && value.length <= 30\r\n && value == Util.sanitizeId(value);\r\n }\r\n\r\n static isValidIdOrNull(value: string) {\r\n return !value ||\r\n (value.length >= 2\r\n && value.length <= 30\r\n && value == Util.sanitizeId(value));\r\n }\r\n\r\n // format date for makeDateTimePicker in Home/Index.cshtml\r\n static formatDate(dateTime) {\r\n if (!moment || !dateTime)\r\n return null;\r\n\r\n return moment(dateTime.replace(\"T\", \" \")).format('MM/DD/YYYY hh:mm a');\r\n }\r\n\r\n static formatNumberWithCommas(value: number) {\r\n let parts = value.toString().split(\".\");\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return parts[0];\r\n }\r\n\r\n static timestamp() {\r\n if (!moment)\r\n return null;\r\n\r\n let now = new Date();\r\n return moment(now).format('MM/DD/YYYY hh:mm:ss a');\r\n }\r\n\r\n static duration(end, start) {\r\n let mEnd = moment(end);\r\n let mStart = moment(start);\r\n let diff = mEnd.diff(mStart);\r\n return moment.utc(diff).format(\"HH:mm:ss\");\r\n }\r\n\r\n static fetchUrl(options: IPostOptions = DefaultPostOptions) {\r\n //console.log(\"fetchUrl\", options.url, options.data, options);\r\n\r\n options.data = options.data || {};\r\n\r\n // Object.assign for Typescript\r\n let headers = {\r\n ...options.headers || {},\r\n RequestVerificationToken: window.sessionStorage.getItem('requestVerificationToken'),\r\n TabSessionId: window.sessionStorage.getItem('tabSessionId'),\r\n };\r\n\r\n headers['Accept'] = 'application/json, text/plain, */*';\r\n\r\n console.log(`XR n ${options.noCredentials}`)\r\n console.log(`XR data ${options.data ? JSON.stringify(options.data) : options.data}`)\r\n console.log(`XR url ${options.url ? JSON.stringify(options.url) : options.url}`)\r\n if (options.json) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n console.log(\"fetchUrl\", options.url, headers);\r\n \r\n return fetch(options.url,\r\n {\r\n method: options.method,\r\n headers: headers,\r\n body: options.json ? JSON.stringify(options.data) : options.data,\r\n cache: 'no-cache',\r\n credentials: options.noCredentials ? null : 'same-origin',\r\n mode: 'cors',\r\n })\r\n .then(response => {\r\n console.log('fetchUrl', options.url, response);\r\n\r\n if (!response.ok) {\r\n console.error('fetchUrl', options.url, response.statusText, options.url, options.url, response);\r\n\r\n /* \r\n if (response.status == 400) {\r\n return {\r\n status: false,\r\n message: 'Not Authorized'\r\n };\r\n }\r\n */\r\n\r\n return null;\r\n }\r\n\r\n if (options.jsonResponse) {\r\n let data = response.json();\r\n //console.log('fetchUrl', options.url, data, response);\r\n if (data == null) {\r\n console.error('fetchUrl', options.url, response);\r\n }\r\n return data;\r\n }\r\n\r\n return response.body || response.statusText;\r\n }).catch(error => {\r\n console.error('fetchUrl', options.url, error);\r\n return null;\r\n });\r\n }\r\n\r\n static postUrl(url: string, data: any = {}, headers: any = {}, noCredentials: boolean = false, options: any = null) {\r\n\r\n options = options || ({ ...{}, ...DefaultPostOptions });\r\n \r\n options.url = url || null;\r\n options.data = data || {};\r\n options.noCredentials = noCredentials || false;\r\n options.headers = headers || {};\r\n console.log(`XR info: ${options}`)\r\n return Util.fetchUrl(options);\r\n }\r\n\r\n static getUrl(url: string, data: any = {}, headers: any = {}, noCredentials: boolean = false, options: any = null) {\r\n\r\n options = options || ({ ...{}, ...DefaultPostOptions });\r\n\r\n options.url = url || null;\r\n options.data = data || {};\r\n options.noCredentials = noCredentials || false;\r\n options.headers = headers || {};\r\n \r\n return Util.fetchUrl(options);\r\n }\r\n\r\n static createPromise(callback: Function) {\r\n return new Promise((resolve, reject) => {\r\n callback(resolve, reject);\r\n });\r\n };\r\n\r\n static failedPromise(data: T) {\r\n return new Promise((resolve, reject) => {\r\n reject(data);\r\n });\r\n };\r\n\r\n static successPromise(data: T) {\r\n return new Promise((resolve, reject) => {\r\n resolve(data);\r\n });\r\n };\r\n\r\n static expiredPromise() {\r\n return Util.failedPromise('expired');\r\n }\r\n\r\n static loadScript(url: string, callback?: any) {\r\n callback = callback || (() => { });\r\n\r\n var scriptTag = document.createElement('script');\r\n scriptTag.src = url;\r\n scriptTag.onload = () => callback();\r\n (scriptTag).onreadystatechange = () => callback();\r\n document.body.appendChild(scriptTag);\r\n }\r\n\r\n static showToast(message: string, error: boolean = false, timeOut = '3000') {\r\n Util._showToast(message, error, timeOut, 'toast-bottom-center');\r\n }\r\n\r\n static showTopToast(message: string, error: boolean = false, timeOut = '3000') {\r\n Util._showToast(message, error, timeOut, 'toast-top-center');\r\n }\r\n\r\n static _showToast(message: string, error: boolean = false, timeOut = '3000', positionClass = 'toast-bottom-center') {\r\n error = error || false;\r\n //console.log(\"showToast\", message, error);\r\n\r\n toastr.clear();\r\n (toastr).options = {\r\n \"closeButton\": false,\r\n \"debug\": false,\r\n \"newestOnTop\": false,\r\n \"progressBar\": false,\r\n \"positionClass\": positionClass,\r\n \"preventDuplicates\": false,\r\n \"onclick\": null,\r\n \"showDuration\": \"300\",\r\n \"hideDuration\": \"1000\",\r\n \"timeOut\": timeOut,\r\n \"extendedTimeOut\": \"1000\",\r\n \"showEasing\": \"swing\",\r\n \"hideEasing\": \"linear\",\r\n \"showMethod\": \"fadeIn\",\r\n \"hideMethod\": \"fadeOut\"\r\n };\r\n if (error)\r\n toastr.error(message);\r\n else\r\n toastr.success(message);\r\n }\r\n\r\n static getRandomInt(max = 4294967295) {\r\n return Math.floor(Math.random() * Math.floor(max));\r\n }\r\n\r\n static dumpJson(data: any) {\r\n return JSON.stringify(data, ' ', 3);\r\n }\r\n\r\n static showError(error: string) {\r\n Debug.error(\"showError\", error);\r\n Util.showToast(error, true);\r\n }\r\n\r\n static async forEachAsync(callback) {\r\n for (let index = 0; index < this.length; index++) {\r\n await callback(this[index], index, this);\r\n }\r\n }\r\n\r\n static randomString(length: number = 10) {\r\n return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, length);\r\n }\r\n}\r\n\r\nif (!Array.prototype.forEachAsync) {\r\n Array.prototype.forEachAsync = (Util.forEachAsync);\r\n}\r\n","function encode(s: string) {\r\n return encodeURIComponent(s);\r\n}\r\n\r\nfunction decode(s: string) {\r\n return decodeURIComponent(s);\r\n}\r\n\r\nfunction parseValue(s: string) {\r\n if (s.indexOf('\"') === 0) {\r\n // This is a quoted cookie as according to RFC2068, unescape...\r\n s = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\r\n }\r\n\r\n try {\r\n let pluses = /\\+/g;\r\n // Replace server-side written pluses with spaces.\r\n // If we can't decode the cookie, ignore it, it's unusable.\r\n // If we can't parse the cookie, ignore it, it's unusable.\r\n s = decodeURIComponent(s.replace(pluses, ' '));\r\n return JSON.parse(s);\r\n } catch (e) {\r\n return null;\r\n }\r\n\r\n}\r\n\r\nexport default class LocalData {\r\n public static SigninKey = \"signin\";\r\n\r\n static save(key: string, value: any) {\r\n try {\r\n let valueToSave = encode(JSON.stringify(value));\r\n window.localStorage.setItem(encode(key), valueToSave);\r\n //console.log('LocalData.save', encode(key), window.localStorage.getItem(encode(key)));\r\n } catch (e) {\r\n return;\r\n }\r\n }\r\n\r\n static get(key: string, defaultValue: any = null): any {\r\n try {\r\n let value = window.localStorage.getItem(encode(key));\r\n //console.log('LocalData.get', encode(key), value, parseValue(decode(value)));\r\n if (value) {\r\n value = parseValue(decode(value));\r\n if (value && value != 'null')\r\n return value;\r\n }\r\n\r\n return defaultValue;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n static getBool(key: string, defaultValue: boolean = false) {\r\n defaultValue = defaultValue || false;\r\n const value = LocalData.get(key, defaultValue);\r\n if (value && value != undefined)\r\n return value === true || value == 'true' || value == '1';\r\n return false;\r\n }\r\n\r\n static remove(key: string) {\r\n window.localStorage.removeItem(encode(key));\r\n }\r\n\r\n};\r\n","import VueRouter from 'vue-router';\r\nimport { differenceWith, findIndex, orderBy, pullAllWith } from 'lodash';\r\nimport Util from './utility';\r\nimport Globals from '@/globals';\r\nimport { VideoPlayerState } from '@/globals';\r\nimport { IVideo, IStudy } from '@/interfaces';\r\nimport { routes } from '@/router';\r\nimport { ServerDataModule } from '@/store/serverData';\r\n\r\nconst DebugMergeStudyList = false;\r\n\r\nexport default class PlayerUtil {\r\n static videoStateToString(state) {\r\n switch (state) {\r\n case VideoPlayerState.NONE:\r\n return \"none\";\r\n case VideoPlayerState.LOADING:\r\n return \"loading\";\r\n case VideoPlayerState.READY:\r\n return \"ready\";\r\n case VideoPlayerState.PLAYING:\r\n return \"playing\";\r\n case VideoPlayerState.PAUSED:\r\n return \"paused\";\r\n case VideoPlayerState.ENDED:\r\n return \"ended\";\r\n case VideoPlayerState.ERROR:\r\n return \"error\";\r\n default:\r\n return \"unknown\";\r\n }\r\n }\r\n\r\n static synchronizeVideos(oldVideos, newVideos) {\r\n let removeOld = differenceWith(oldVideos, newVideos, PlayerUtil.compareVideoStrings);\r\n let addNew = differenceWith(newVideos, oldVideos, PlayerUtil.compareVideoStrings);\r\n\r\n if (removeOld.length > 0) {\r\n pullAllWith(oldVideos, removeOld);\r\n\r\n if (DebugMergeStudyList)\r\n Debug.log('Removed', removeOld.length, removeOld);\r\n }\r\n\r\n // Update existing videos from response videos\r\n oldVideos.forEach(video => {\r\n let newVideo = oldVideos.find(item => PlayerUtil.compareVideoStrings(item, video));\r\n if (newVideo == null) {\r\n Debug.error('Copying video missing', video.id, video.title);\r\n return;\r\n }\r\n\r\n Object.assign(video, newVideo);\r\n });\r\n\r\n if (addNew.length > 0) {\r\n addNew.forEach(video => {\r\n oldVideos.push(video);\r\n });\r\n if (DebugMergeStudyList)\r\n Debug.log('Added', addNew.length, addNew);\r\n }\r\n\r\n let sortedVideos = orderBy(oldVideos, ['creationDate', 'title', 'filter', 'filterName'], ['desc', 'asc', 'asc', 'asc'])\r\n\r\n if (DebugMergeStudyList) {\r\n Debug.log('sortedVideos', sortedVideos);\r\n }\r\n\r\n for (let idx = 0; idx < oldVideos.length; idx++) {\r\n let video = oldVideos[idx];\r\n\r\n let tgtIndex = sortedVideos.indexOf(video);\r\n if (tgtIndex == -1) {\r\n Debug.error('Missing sorted video', PlayerUtil.getVideoSignature(video));\r\n continue;\r\n }\r\n\r\n if (tgtIndex == idx)\r\n continue;\r\n\r\n oldVideos.splice(idx, 1, {});\r\n oldVideos.splice(tgtIndex, 0, video);\r\n oldVideos.splice(idx, 1);\r\n }\r\n\r\n }\r\n\r\n static getStudyNames(studyList: IStudy[]) {\r\n let names = [];\r\n studyList.forEach(study => {\r\n names.push(study.name);\r\n });\r\n return names.join(' , ');\r\n }\r\n\r\n static synchronizeStudies(studyList: IStudy[], responseStudies: IStudy[]) {\r\n if (DebugMergeStudyList) {\r\n Debug.log('synchronizeStudies removedStudies', studyList.length, responseStudies.length);\r\n Debug.log('synchronizeStudies studyList -------- ', PlayerUtil.getStudyNames(studyList));\r\n Debug.log('synchronizeStudies responseStudies -------- ', PlayerUtil.getStudyNames(responseStudies));\r\n }\r\n\r\n let removeOld = differenceWith(studyList, responseStudies, (left, right) => {\r\n return left.name == right.name;\r\n });\r\n\r\n let addNew = differenceWith(responseStudies, studyList, (left, right) => {\r\n return left.name == right.name;\r\n });\r\n\r\n if (DebugMergeStudyList) {\r\n Debug.log('synchronizeStudies removeOld -------- ', PlayerUtil.getStudyNames(removeOld));\r\n Debug.log('synchronizeStudies addNew -------- ', PlayerUtil.getStudyNames(addNew));\r\n }\r\n\r\n if (removeOld.length > 0) {\r\n pullAllWith(studyList, removeOld, (left, right) => {\r\n return left.name == right.name;\r\n });\r\n\r\n if (DebugMergeStudyList)\r\n Debug.log('synchronizeStudies removedStudies', removeOld.length, removeOld);\r\n }\r\n\r\n studyList.forEach(study => {\r\n let newStudy = responseStudies.find(item => item.name == study.name);\r\n if (!newStudy) {\r\n Debug.error('synchronizeStudies missing study', study.name);\r\n return;\r\n }\r\n\r\n if (DebugMergeStudyList)\r\n Debug.log('synchronizing study', study.name, study.videos.length, newStudy.videos.length, study.videos);\r\n\r\n PlayerUtil.synchronizeVideos(study.videos, newStudy.videos);\r\n });\r\n\r\n addNew.reverse();\r\n addNew.forEach(study => {\r\n studyList.splice(0, 0, study);\r\n });\r\n\r\n if (DebugMergeStudyList) {\r\n Debug.log('synchronizeStudies added/removed', studyList.length, responseStudies.length);\r\n Debug.log('synchronizeStudies studyList -------- ', PlayerUtil.getStudyNames(studyList));\r\n }\r\n }\r\n\r\n static tailSynchronizeVideos(oldVideos: IVideo[], newVideos: IVideo[], studyName: string) {\r\n let removeOld = differenceWith(oldVideos, newVideos, PlayerUtil.compareVideos);\r\n let addNew = differenceWith(newVideos, oldVideos, PlayerUtil.compareVideos);\r\n\r\n removeOld.forEach(video => {\r\n let idx = findIndex(oldVideos, item => PlayerUtil.compareVideos(item, video));\r\n if (idx == -1) {\r\n Debug.error(\"tailSynchronizeVideos missing old video\", studyName, video);\r\n return;\r\n }\r\n\r\n if (DebugMergeStudyList)\r\n Debug.log('tailSynchronizeVideos removing old video', studyName, idx, video);\r\n oldVideos.splice(idx, 1);\r\n });\r\n\r\n addNew.forEach(video => {\r\n if (DebugMergeStudyList)\r\n Debug.log('tailSynchronizeVideos adding new video', studyName, 'end', video);\r\n oldVideos.push(video);\r\n });\r\n }\r\n\r\n static addVideoListPrivateMembers(videos: IVideo[]) {\r\n videos.forEach(video => {\r\n PlayerUtil.addVideoPrivateMemebers(video);\r\n });\r\n }\r\n\r\n static addVideoPrivateMemebers(video: IVideo) {\r\n video.token = null;\r\n video.player = null;\r\n video.busy = false;\r\n video.downloadUrl = null;\r\n video.testPlaybackUrl = null;\r\n video.disableDownload = false;\r\n video.dontPlay = false;\r\n video.downloadProgress = 0;\r\n video.captionsProgress = 0;\r\n video.autoMuted = false;\r\n\r\n video.captions = video.captions || [];\r\n video.captions.forEach(caption => {\r\n caption.url = window.location.origin + '/DownloadCaptions/' + video.studio + '/' + caption.hash;\r\n });\r\n\r\n if (video.captions.length > 0)\r\n video.downloadCaptionsUrl = video.captions[0].url;\r\n\r\n if (video.title && video.tooltip) {\r\n if (!video.tooltip.startsWith(video.title)) {\r\n video.tooltip = video.title + ' - ' + video.tooltip;\r\n }\r\n }\r\n }\r\n\r\n static isSpecialGroup(name: string) {\r\n if (!name)\r\n return false;\r\n else if (name != Util.sanitizeCompany(name))\r\n return false;\r\n\r\n return name.toLowerCase() == Globals.EveryoneAtMicrosoft.toLowerCase() ||\r\n name.toLowerCase() == Globals.GlobalEveryone.toLowerCase();\r\n }\r\n\r\n static getVideoSignature(video: IVideo) {\r\n return video.id + ' -- ' + video.title + ' -- ' + (video.filter || '') + ' -- ' + (video.filterName || '') + ' -- ' + video.creationDate;\r\n }\r\n\r\n static compareVideos(left: IVideo, right: IVideo) {\r\n if (!left || !right)\r\n return false;\r\n\r\n return left.id == right.id &&\r\n left.title == right.title &&\r\n left.filter == right.filter &&\r\n left.filterName == right.filterName &&\r\n left.creationDate == right.creationDate;\r\n }\r\n\r\n static compareVideoStrings(left: IVideo, right: IVideo, verbose = false) {\r\n if (!left || !right)\r\n return false;\r\n\r\n if (verbose)\r\n Debug.log('compareVideoStrings', left.id, right.id, PlayerUtil.getVideoSignature(left), PlayerUtil.getVideoSignature(right));\r\n\r\n return left.id == right.id &&\r\n left.title == right.title &&\r\n left.filter == right.filter &&\r\n left.filterName == right.filterName;\r\n }\r\n\r\n static sortCompareItems(left: any, right: any) {\r\n if (left == right)\r\n return 0;\r\n\r\n return (left < right) ? -1 : 1;\r\n }\r\n\r\n static sortCompareVideos(left: IVideo, right: IVideo) {\r\n if (left.filter && right.filter) {\r\n let streamResult = PlayerUtil.sortCompareItems(left.id, right.id);\r\n if (streamResult == 0) {\r\n let result = PlayerUtil.sortCompareItems(left.title, right.title);\r\n if (result == 0) {\r\n return PlayerUtil.sortCompareItems(left.filterName, right.filterName);\r\n }\r\n return result;\r\n }\r\n }\r\n\r\n let creationDateResult = PlayerUtil.sortCompareItems(left.creationDate, right.creationDate);\r\n if (creationDateResult == 0) {\r\n let result = PlayerUtil.sortCompareItems(left.title, right.title);\r\n return result;\r\n }\r\n\r\n return -1 * creationDateResult;\r\n }\r\n\r\n static videoToStreamApiDto(video: IVideo) {\r\n let model: SUR.StreamApiDto = {\r\n studio: video.studio,\r\n study: video.study,\r\n stream: video.id,\r\n filter: video.filter,\r\n filterName: video.filterName,\r\n title: video.title,\r\n recreate: false,\r\n };\r\n return model;\r\n }\r\n\r\n static redirectToStudio(router: any, studio: string) {\r\n PlayerUtil.redirectToStudioView(router, '/Studio', studio);\r\n }\r\n\r\n static redirectToRequestAccess(router: any, studio: string) {\r\n PlayerUtil.redirectToStudioView(router, '/RequestAccess', studio);\r\n }\r\n\r\n static redirectToError(router: any) {\r\n if (ServerData.debugging || ServerDataModule.serverData.debugging) {\r\n console.error('Skip redirectToError');\r\n return;\r\n }\r\n\r\n PlayerUtil.redirectToView(router, '/Error');\r\n }\r\n\r\n static redirectToNotAuthorized(router: any) {\r\n if (ServerData.debugging || ServerDataModule.serverData.debugging) {\r\n console.error('Skip redirectToNotAuthorized');\r\n return;\r\n }\r\n\r\n PlayerUtil.redirectToView(router, '/NotAuthorized');\r\n }\r\n\r\n static redirectToView(router: VueRouter, view: string, studio: string = null, replace: boolean = false) {\r\n Debug.log('redirectToView', view, studio);\r\n\r\n let route = routes.find(item => item.path == view || item.path.startsWith(view));\r\n if (!route) {\r\n Debug.error('missing route', view);\r\n return\r\n }\r\n\r\n route = Object.assign({}, route);\r\n if (studio) {\r\n route.path = route.path.replace(':studio', studio);\r\n }\r\n if (replace)\r\n router.replace(route);\r\n else\r\n router.push(route);\r\n\r\n Debug.log('redirectToView', route.path, view, studio);\r\n }\r\n\r\n static redirectToStudioView(router: any, view: string, studio: string) {\r\n Debug.log('redirectToStudioView', view, studio);\r\n\r\n let route = routes.find(item => item.path.startsWith(view));\r\n if (route) {\r\n route = Object.assign({}, route);\r\n route.path = view + '/' + studio + '/';\r\n router.push(route);\r\n }\r\n }\r\n\r\n static dumpVideos(header: string, videos) {\r\n Debug.log(header, videos.length);\r\n videos.forEach((video, idx) => {\r\n Debug.log(idx, video.title, video.id);\r\n });\r\n }\r\n}\r\n\r\n","import { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport { orderBy, sortedIndexBy } from 'lodash';\r\nimport { EventBus } from '@/support/eventBus';\r\nimport PlayerApi from '@/support/playerApi';\r\nimport store from '@/store/store';\r\nimport { ServerDataModule } from './serverData';\r\n\r\n@Module({ dynamic: true, store, name: 'category' })\r\nexport class Category extends VuexModule {\r\n categories: SUR.CategoryDto[] = [];\r\n\r\n @MutationAction({ mutate: ['categories'] })\r\n async fetchCategories(method: string):Promise {\r\n try {\r\n if (!ServerDataModule.serverData.isSignedIn) {\r\n return {\r\n categories: []\r\n };\r\n }\r\n\r\n Debug.log('fetchCategories', method);\r\n let data = await PlayerApi.categoriesList();\r\n data = orderBy(data, ['order', 'name']);\r\n Debug.log('fetchCategories', method, data);\r\n (this).commit('commit_categories', data);\r\n\r\n return {\r\n categories: orderBy(data, ['order', 'name'])\r\n };\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('categories - fetchCategorys Failed aquire categories: ' + message);\r\n\r\n return {\r\n categories: []\r\n };\r\n }\r\n }\r\n\r\n /*****************************************************************\r\n * Studio Mutations\r\n *\r\n *****************************************************************\r\n */\r\n @Mutation\r\n private commit_categories(categories: SUR.CategoryDto[]) {\r\n this.categories.splice(0, this.categories.length, ...categories);\r\n Debug.log('categories commit_categories', this.categories.length);\r\n }\r\n\r\n /*****************************************************************\r\n * Category mutations\r\n *\r\n *****************************************************************\r\n */\r\n @Action({ commit: 'commit_create_category' })\r\n async createCategory(category: SUR.CategoryDto) {\r\n if (!ServerDataModule.serverData.isSignedIn)\r\n return null;\r\n\r\n return await PlayerApi.createCategory(category);\r\n }\r\n\r\n @Action({ commit: 'commit_edit_category' })\r\n async editCategory(category: SUR.CategoryDto) {\r\n if (!ServerDataModule.serverData.isSignedIn)\r\n return null;\r\n\r\n return await PlayerApi.editCategory(category);\r\n }\r\n\r\n @Action({ commit: 'commit_delete_category' })\r\n async deleteCategory(category: SUR.CategoryDto) {\r\n if (!ServerDataModule.serverData.isSignedIn)\r\n return null;\r\n\r\n return await PlayerApi.deleteCategory(category);\r\n }\r\n\r\n @Mutation\r\n private commit_create_category(category: SUR.CategoryDto) {\r\n let idx = this.categories.findIndex(item => item.id == category.id || item == category);\r\n if (idx != -1) {\r\n Debug.error('commit_create_category already exists', category);\r\n throw \"Category already exists\";\r\n }\r\n\r\n idx = sortedIndexBy(this.categories, category, item => item.name);\r\n if (idx != -1) {\r\n this.categories.splice(idx, 0, category);\r\n } else {\r\n this.categories.push(category);\r\n }\r\n\r\n EventBus.Instance.$emit(EventBus.CategoriesChanged, category);\r\n\r\n return {\r\n categories: this.categories\r\n };\r\n }\r\n\r\n @Mutation\r\n private commit_edit_category(category: SUR.CategoryDto) {\r\n let idx = this.categories.findIndex(item => item.id == category.id || item == category);\r\n if (idx == -1) {\r\n Debug.error('commit_edit_category missing category', category);\r\n throw \"Missing category \" + category.name;\r\n }\r\n\r\n let found = this.categories[idx];\r\n Object.assign(found, category);\r\n\r\n EventBus.Instance.$emit(EventBus.CategoriesChanged, category);\r\n\r\n return {\r\n categories: this.categories\r\n };\r\n }\r\n\r\n @Mutation\r\n private commit_delete_category(category: SUR.CategoryDto) {\r\n let idx = this.categories.findIndex(item => item.id == category.id || item == category);\r\n if (idx == -1) {\r\n Debug.error('category removeCategory missing category', category);\r\n throw \"Missing category \" + category.name;\r\n }\r\n\r\n this.categories.splice(idx, 1);\r\n EventBus.Instance.$emit(EventBus.CategoriesChanged, category);\r\n\r\n return {\r\n categories: this.categories\r\n };\r\n }\r\n}\r\n\r\nexport const CategoryModule = getModule(Category);\r\nDebug.setDebugModule('Category', CategoryModule);\r\n","import { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport { EventBus } from '@/support/eventBus';\r\nimport Globals from '@/globals';\r\nimport LocalData from '@/support/localStorage';\r\nimport store from '@/store/store';\r\n\r\n@Module({ dynamic: true, store, name: 'serverData' })\r\nexport class ServerDataStore extends VuexModule {\r\n serverData = Globals.NewServerViewModel;\r\n\r\n /*****************************************************************\r\n * ServerData mutations\r\n *\r\n *****************************************************************\r\n */\r\n\r\n @Action({ commit: 'commit_edit_serverData' })\r\n editServerData(serverData: SUR.ServerViewModel) {\r\n return serverData;\r\n }\r\n\r\n @Mutation\r\n private commit_edit_serverData(serverData: SUR.ServerViewModel) {\r\n Object.assign(this.serverData, serverData);\r\n\r\n LocalData.save('serverData', serverData);\r\n EventBus.Instance.$emit(EventBus.ServerDataChanged, serverData);\r\n\r\n return {\r\n serverData: this.serverData\r\n };\r\n }\r\n}\r\n\r\nexport const ServerDataModule = getModule(ServerDataStore);\r\nDebug.setDebugModule('ServerDataModule', ServerDataModule);\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state: {},\r\n});\r\n","import Vue from 'vue';\r\nimport { IShowSettings } from '@/interfaces';\r\nconst eventBusInstance = new Vue();\r\n\r\nexport const EventBus = {\r\n CategoriesChanged: \"Category.categoriesChanged\",\r\n PermissionsChanged: \"Permissions.permissionsChanged\",\r\n ShowSettingsWizard: 'ShowSettingsWizard',\r\n ServerDataChanged: 'ServerDataModules.serverDataChanged',\r\n StudiosChanged: 'StudioModules.studiosChanged',\r\n VideosChanged: \"Videos.videosChanged\",\r\n\r\n Instance: eventBusInstance,\r\n\r\n showSettingsWizard(model: IShowSettings) {\r\n eventBusInstance.$emit(EventBus.ShowSettingsWizard, model);\r\n }\r\n};\r\n\r\n/**\r\n * EventBus Usage\r\nimport { EventBus } from '@/support/eventBus';\r\n\r\nEventBus.Instance.$emit('StudyModules.studysChanged', study);\r\n\r\nEventBus.Instance.$on('StudyModules.studysChanged', study => {\r\n do my thing\r\n});\r\n\r\n*/","Debug.debugMode = ServerData.debugMode;\r\n\r\nexport default class DebugModule {\r\n static initialized = false;\r\n\r\n static ensureCalled() { }\r\n\r\n static initializeDebug() {\r\n if (!Debug.debugMode || false)\r\n return;\r\n\r\n if (console && console.log) {\r\n try {\r\n Debug.log = console.log.bind(window.console);\r\n } catch (err) {\r\n Debug.log = console.log;\r\n }\r\n try {\r\n Debug.log(\"Debug Mode\");\r\n } catch (err) {\r\n Debug.log = () => { };\r\n }\r\n }\r\n if (console && console.error) {\r\n try {\r\n Debug.error = console.error.bind(window.console);\r\n } catch (err) {\r\n Debug.error = console.error;\r\n }\r\n try {\r\n // Debug.error(\"\");\r\n } catch (err) {\r\n Debug.error = () => { };\r\n }\r\n }\r\n if (Debug.log) {\r\n Debug.dumpCallStack = () => {\r\n var stack = new Error().stack;\r\n Debug.log(\"PRINTING CALL STACK\");\r\n Debug.log(stack);\r\n }\r\n }\r\n\r\n if (!Debug.log)\r\n Debug.log = () => { };\r\n if (!Debug.error)\r\n Debug.error = () => { };\r\n if (!Debug.dumpCallStack)\r\n Debug.dumpCallStack = () => { };\r\n\r\n Debug.setDebugModule = function (key, value, item) {\r\n let name = key;\r\n value = value || null;\r\n let windowObj = window;\r\n\r\n if (item) {\r\n name = 'g_' + key[0].toUpperCase() + key.substr(1);\r\n if (!window[name])\r\n window[name] = {} as any;\r\n\r\n window[name][item] = value;\r\n return;\r\n }\r\n\r\n switch (key.toLowerCase()) {\r\n case 'app': name = 'g_App'; break;\r\n case 'serverdata': name = 'g_ServerData'; break;\r\n case 'wizard': name = 'g_Wizard'; break;\r\n\r\n case 'player': {\r\n if (!windowObj.g_Player)\r\n windowObj.g_Player = {};\r\n\r\n windowObj.g_Player[item] = value;\r\n return;\r\n }\r\n\r\n case 'player_ams': {\r\n if (!windowObj.g_Player)\r\n windowObj.g_PlayerAms = {};\r\n\r\n windowObj.g_PlayerAms[item] = value;\r\n return;\r\n }\r\n\r\n default: {\r\n name = 'g_' + key[0].toUpperCase() + key.substr(1);\r\n break;\r\n }\r\n }\r\n\r\n window[name] = value;\r\n //Debug.log('setDebugModule', name);\r\n }\r\n\r\n }\r\n}\r\n\r\nif (!DebugModule.initialized) {\r\n DebugModule.initialized = true;\r\n DebugModule.initializeDebug();\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"app-wrapper\",attrs:{\"id\":\"app\"}},[_c('BlockUI',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"message\":\"Loading data ...\",\"html\":\"
\"}}),_c('div',{staticClass:\"app-container\"},[_c('header',{staticClass:\"top-bar\"},[_c('top-bar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTopBar),expression:\"showTopBar\"}]})],1),_c('section',[(_vm.serverData.expired)?_c('expired'):(_vm.notAuthorized)?_c('notAuthorized'):(!_vm.loading)?_c('div',{staticClass:\"router-view\"},[_c('transition',{attrs:{\"mode\":\"out-in\",\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[_c('router-view',{key:_vm.$route.fullPath})],1)],1):_vm._e()],1),(_vm.showPrivacy)?_c('footer',{staticClass:\"footer\"},[_c('a',{attrs:{\"href\":\"https://go.microsoft.com/fwlink/?LinkID=521839\",\"title\":\"Microsoft Privacy Statement\",\"target\":\"_blank\"}},[_vm._v(\"\\n Microsoft Privacy Statement\\n \")])]):_vm._e(),_c('wizard',{ref:\"settingsWizard\",attrs:{\"parent\":_vm.wizardParent,\"video\":_vm.wizardVideo}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"top-bar-wrappper\"},[_c('router-link',{staticClass:\"top-bar-center\",attrs:{\"to\":\"/\"}},[_c('img',{attrs:{\"src\":require(\"../../assets/XboxResearch.Logo.White.png\")}}),_vm._v(\"\\n Xbox Research\\n \")]),_c('div',{staticClass:\"top-bar-right\"},[(_vm.showSettings)?_c('a',{attrs:{\"id\":\"studio-settings\",\"href\":\"javascript:void(0)\",\"target\":\"_blank\",\"title\":\"Settings\"},on:{\"click\":_vm.showSettingsWizard}},[_c('i',{staticClass:\"ms-Icon ms-Icon--Settings\",staticStyle:{\"font-size\":\"2em\"},attrs:{\"aria-hidden\":\"true\"}})]):_vm._e(),(_vm.isAdmin)?_c('a',{attrs:{\"href\":\"/Log\",\"target\":\"_blank\",\"title\":\"Log\"}},[_vm._v(\"\\n Log\\n \")]):_vm._e(),(_vm.showHelp)?_c('router-link',{attrs:{\"to\":\"/Studio/Help/\"}},[_vm._v(\"\\n Help\\n \")]):_vm._e(),(_vm.serverData.isSignedIn)?_c('a',{attrs:{\"href\":\"/Logout\",\"title\":_vm.signOutTitle},on:{\"click\":_vm.clearSignin}},[_vm._v(\"\\n Sign out\\n \")]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport Browser from '@/support/browser';\r\nimport SigninUtil from '@/support/signinUtil';\r\nimport Util from '@/support/utility';\r\nimport { EventBus } from '@/support/eventBus';\r\nimport { IShowSettings } from '@/interfaces';\r\nimport { ServerDataModule } from '@/store/serverData';\r\nimport { StudioModule } from '@/store/studio';\r\n\r\n@Component\r\nexport default class TopBarComponent extends Vue {\r\n options = {\r\n noAdmin: Browser.getBoolParam('noAdmin', false),\r\n noOwner: Browser.getBoolParam('noOwner', false),\r\n noTeamMember: Browser.getBoolParam('noTeamMember', false),\r\n };\r\n\r\n get serverData() {\r\n return ServerDataModule.serverData;\r\n }\r\n\r\n get isAdmin() {\r\n return !this.options.noAdmin && (this.serverData.isAdmin || StudioModule.studio.isAdmin);\r\n }\r\n\r\n get isOwner() {\r\n return !this.options.noOwner && StudioModule.studio.isOwner;\r\n }\r\n\r\n get isTeamMember() {\r\n return !this.options.noOwner && this.serverData.isTeamMember;\r\n }\r\n\r\n get showHelp() {\r\n return this.isAdmin || this.isOwner || this.isTeamMember;\r\n }\r\n\r\n get signOutTitle() {\r\n return 'Sign out : ' + this.serverData.fullName +\r\n '\\nEmail : ' + this.serverData.email +\r\n '\\nProvider : ' + this.serverData.providerName;\r\n }\r\n\r\n get showSettings() {\r\n let route = this.$route;\r\n if (!route.meta || !route.meta.settings || !route.meta.settings.component)\r\n return false;\r\n\r\n return !route.meta.settings.ownerRequired || this.isAdmin || this.isOwner;\r\n }\r\n\r\n showSettingsWizard() {\r\n let route = this.$route;\r\n if (!route.meta || !route.meta.settings || !route.meta.settings.component) {\r\n Util.showError('Cannot show settings');\r\n throw 'Route does not have settings';\r\n }\r\n\r\n let model: IShowSettings = {\r\n name: route.meta.settings.component,\r\n parent: this,\r\n };\r\n\r\n EventBus.showSettingsWizard(model);\r\n }\r\n\r\n clearSignin() {\r\n SigninUtil.clear();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./topBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./topBar.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./topBar.vue?vue&type=template&id=65c44a22\"\nimport script from \"./topBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./topBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./tobBar.scss?vue&type=style&index=0&prod&lang=scss&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport Browser from '@/support/browser';\r\nimport Globals from '@/globals';\r\nimport SigninUtil from '@/support/signinUtil';\r\nimport StudioPageBase from '@/support/studioPageBase';\r\nimport TopBar from '@/components/topBar/topBar.vue';\r\nimport { ServerDataModule } from '@/store/serverData';\r\nimport { StudioModule } from '@/store/studio';\r\nimport { EventBus } from '@/support/eventBus';\r\nimport { IShowSettings } from '@/interfaces';\r\nimport { IWizardManager } from '@/interfaces';\r\nimport PlayerUtil from '@/support/playerUtil';\r\n\r\nVue.component('top-bar', TopBar);\r\n\r\n@Component\r\nexport default class AppComponent extends StudioPageBase {\r\n get serverData() {\r\n return ServerDataModule.serverData;\r\n }\r\n\r\n options = {\r\n allData: Browser.getBoolParam('all', false) || Browser.getBoolParam('allData', false),\r\n clearSignin: Browser.getBoolParam('clearSignin', false),\r\n limit: Browser.getIntParam('limit', 0),\r\n filter: Browser.getParam('filter', null),\r\n signin: Browser.getBoolParam('signin', false),\r\n noAdmin: Browser.getBoolParam('noAdmin', false),\r\n noOwner: Browser.getBoolParam('noOwner', false),\r\n noTeamMember: Browser.getBoolParam('noTeamMember', false),\r\n };\r\n\r\n loading = true;\r\n transitionName = '';\r\n wizardParent = null;\r\n wizardVideo = null;\r\n redirectedView: string = null;\r\n\r\n get notAuthorized() {\r\n return this.serverData.notAuthorized && !this.$route.meta.unSecure;\r\n }\r\n\r\n get isAdmin() {\r\n return !this.options.noAdmin && (this.serverData.isAdmin || StudioModule.studio.isAdmin);\r\n }\r\n\r\n get isOwner() {\r\n return !this.options.noOwner && StudioModule.studio.isOwner;\r\n }\r\n\r\n get isTeamMember() {\r\n return !this.options.noOwner && this.serverData.isTeamMember;\r\n }\r\n\r\n get showTopBar() {\r\n return !this.serverData.hideTopBar;\r\n }\r\n\r\n get showPrivacy() {\r\n return !this.$route.meta || !this.$route.meta.hidePrivacy;\r\n }\r\n\r\n async created() {\r\n Debug.setDebugModule('baseApp', this);\r\n super.created('app');\r\n\r\n if (this.options.clearSignin) {\r\n SigninUtil.clear();\r\n }\r\n\r\n Debug.log('app created', this.$route.path, 'provider:', SigninUtil.getProvider());\r\n }\r\n\r\n async mounted() {\r\n Debug.log('app mounted');\r\n\r\n if (this.redirectToProvider()) {\r\n return;\r\n }\r\n\r\n this.$router.beforeEach((to, from, next) => this.routerBeforeEach(to, from, next));\r\n this.$router.afterEach((to, from) => this.routerAfterEach(to, from));\r\n\r\n EventBus.Instance.$on(EventBus.ShowSettingsWizard, (model: IShowSettings) => {\r\n this.showSettingsWizard(model);\r\n });\r\n\r\n await super.mountedAsync();\r\n\r\n this.loading = false;\r\n }\r\n\r\n protected onLoaded(loaded: boolean) {\r\n // Save provider on successful signin\r\n if (loaded && this.studios.length && !this.options.clearSignin) {\r\n SigninUtil.saveProvider(this.serverData.providerName);\r\n }\r\n }\r\n\r\n async routerBeforeEach(to: any, from: any, next: Function) {\r\n //Debug.log('app', 'router beforeEach', to.path, from.path);\r\n\r\n this.transitionName = 'fade';\r\n\r\n next();\r\n }\r\n\r\n async routerAfterEach(to: any, from: any) {\r\n //Debug.log('app', 'router afterEach', to.path, from.path);\r\n\r\n let title = to.meta.title || '';\r\n if (title == Globals.XboxResearch)\r\n document.title = Globals.XboxResearch;\r\n else\r\n document.title = title + ' - ' + Globals.XboxResearch;\r\n }\r\n\r\n showSettingsWizard(model: IShowSettings) {\r\n Debug.log('showSettingsWizard', model.name, model.video);\r\n let wizard = this.$refs.settingsWizard;\r\n if (!wizard)\r\n return;\r\n\r\n this.wizardParent = model.parent;\r\n this.wizardVideo = model.video;\r\n\r\n wizard.navigate(model);\r\n }\r\n\r\n redirectToProvider() {\r\n if (ServerData.isSignedIn || !this.options.signin) {\r\n return false;\r\n }\r\n\r\n let returnUrl = Browser.getParam('ReturnUrl', null);\r\n if (!returnUrl) {\r\n return false;\r\n }\r\n\r\n return SigninUtil.redirectToProvider(returnUrl);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./app.ts?vue&type=script&lang=js&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./app.ts?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=095a5458\"\nimport script from \"./app.ts?vue&type=script&lang=js&external\"\nexport * from \"./app.ts?vue&type=script&lang=js&external\"\nimport style0 from \"./app.scss?vue&type=style&index=0&prod&lang=scss&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/// \r\n/// \r\n/// \r\n\r\nimport DebugModule from '@/support/debug'; // Import early to get debugging turned on\r\n\r\nif (ServerData.debugMode || false) {\r\n console.log(\r\n `*************************************************\r\nmain', ${window.location.href}\r\n*************************************************`);\r\n\r\n /**\r\n * Initialize Debug before all other modules \r\n * */\r\n DebugModule.ensureCalled();\r\n}\r\n\r\nimport 'animate.css/animate.min.css';\r\nimport 'bootstrap';\r\nimport 'font-awesome/css/font-awesome.min.css';\r\nimport 'font-awesome-animation/dist/font-awesome-animation.min.css';\r\nimport 'toastr/build/toastr.min.css';\r\nimport App from './views/app/app.vue';\r\nimport BlockUI from 'vue-blockui';\r\nimport VModal from 'vue-js-modal';\r\nimport Vue from 'vue';\r\nimport router from './router';\r\nimport store from '@/store/store';\r\n\r\nVue.config.productionTip = false;\r\nVue.use(VModal, { dialog: true });\r\nVue.use(BlockUI);\r\n\r\nVue.component('addEveryoneAtMicrosoft', () => import('@/wizards/permissions/addEveryoneAtMicrosoft/addEveryoneAtMicrosoft.vue'));\r\nVue.component('addNewCategory', () => import('@/dialogs/addNewCategory/addNewCategory.vue'));\r\nVue.component('addNewUser', () => import('@/wizards/permissions/addNewUser/addNewUser.vue'));\r\nVue.component('changeCreationDate', () => import('@/wizards/changeCreationDate/changeCreationDate.vue'));\r\nVue.component('expired', () => import('@/views/expired/expired.vue'));\r\nVue.component('notAuthorized', () => import('@/views/notAuthorized/notAuthorized.vue'));\r\nVue.component('player', () => import('@/components/player/player.vue'));\r\nVue.component('prompt', () => import('@/components/prompt/prompt.vue'));\r\nVue.component('removePermission', () => import('@/wizards/permissions/removePermission/removePermission.vue'));\r\nVue.component('video-buttons', () => import('@/components/videoButtons/videoButtons.vue'));\r\nVue.component('vue-grid', () => import('@/components/vue-grid/vue-grid.vue'));\r\nVue.component('wizard', () => import('@/components/wizard/wizard.vue'));\r\n\r\ndocument.getElementById('body-loading').style.display = 'none';\r\nnew Vue({\r\n router,\r\n store,\r\n render: (h) => h(App),\r\n}).$mount('#app');","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./tobBar.scss?vue&type=style&index=0&prod&lang=scss&external\"","module.exports = \"data:image/png;base64,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\"","import Vue from 'vue';\r\nimport Browser from '@/support/browser';\r\nimport Globals from '@/globals';\r\nimport PlayerApi from '@/support/playerApi';\r\nimport PlayerUtil from '@/support/playerUtil';\r\nimport Util from './utility';\r\nimport { CategoryModule } from '@/store/category';\r\nimport { ServerDataModule } from '@/store/serverData';\r\nimport { StudioModule } from '@/store/studio';\r\n\r\nexport default class StudioPageBase extends Vue {\r\n\r\n baseOptions = {\r\n noAdmin: Browser.getBoolParam('noAdmin', false),\r\n noOwner: Browser.getBoolParam('noOwner', false),\r\n noTeamMember: Browser.getBoolParam('noTeamMember', false),\r\n };\r\n\r\n baseKey: string = null;\r\n alias: string = null;\r\n private useExistingStudio = false;\r\n private requireStudio = false;\r\n\r\n get serverData() {\r\n return ServerDataModule.serverData;\r\n }\r\n\r\n get studios() {\r\n return StudioModule.studios;\r\n }\r\n\r\n get studio() {\r\n return StudioModule.studio;\r\n }\r\n\r\n get categories() {\r\n return CategoryModule.categories;\r\n }\r\n\r\n get isAdmin() {\r\n return !this.baseOptions.noAdmin && (this.serverData.isAdmin || StudioModule.studio.isAdmin);\r\n }\r\n\r\n get isOwner() {\r\n return !this.baseOptions.noOwner && (this.isAdmin || StudioModule.studio.isOwner);\r\n }\r\n\r\n get isTeamMember() {\r\n return !this.baseOptions.noOwner && this.serverData.isTeamMember;\r\n }\r\n\r\n created(key: string, useExistingStudio = false, requireStudio = false) {\r\n this.baseKey = key;\r\n this.useExistingStudio = useExistingStudio;\r\n this.requireStudio = requireStudio;\r\n }\r\n\r\n mounted() {\r\n if (this.useExistingStudio || this.requireStudio) {\r\n this.alias = Browser.getRouteParam(this.$route, 'studio', null);\r\n //Debug.log('studioPageBase mounted', this.baseKey, this.alias);\r\n }\r\n\r\n this.load();\r\n }\r\n\r\n async mountedAsync() {\r\n if (this.useExistingStudio || this.requireStudio) {\r\n this.alias = Browser.getRouteParam(this.$route, 'studio', null);\r\n //Debug.log('studioPageBase mounted', this.baseKey, this.alias);\r\n }\r\n\r\n try {\r\n var promises = [];\r\n promises.push(StudioModule.fetchStudios(this.baseKey));\r\n promises.push(CategoryModule.fetchCategories(this.baseKey));\r\n await Promise.all(promises);\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('studioPageBase', message);\r\n }\r\n\r\n this.load();\r\n }\r\n\r\n beforeDestroy() {\r\n if (this.alias && this.studio.studio == this.alias) {\r\n this.alias = null;\r\n StudioModule.selectStudio(null);\r\n }\r\n }\r\n\r\n async load() {\r\n try {\r\n if (this.alias && !Util.stringCompare(this.studio.studio, this.alias)) {\r\n\r\n let studio = this.studios.find(item => Util.stringCompare(item.studio, this.alias));\r\n if (studio) {\r\n this.alias = studio.studio;\r\n\r\n Debug.log('studioPageBase load loginSession', studio.studio);\r\n // Log in session, since studios may have already been fetched.\r\n await PlayerApi.loginSession(studio.studio);\r\n\r\n StudioModule.selectStudio(studio.studio);\r\n }\r\n }\r\n\r\n this.onLoaded(true);\r\n\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('studioPageBase', message);\r\n\r\n if (this.requireStudio) {\r\n Util.showError('load failed error: ' + message);\r\n PlayerUtil.redirectToError(this.$router);\r\n }\r\n this.onLoaded(false);\r\n }\r\n }\r\n\r\n protected onLoaded(loaded: boolean) {\r\n if (!loaded) {\r\n Debug.log('studioPageBase onLoaded failed', this.baseKey);\r\n }\r\n }\r\n\r\n async checkStudioAccess(studio: string) {\r\n try {\r\n let response = await PlayerApi.checkStudioAccess(studio);\r\n\r\n if (response.hasAccess) {\r\n Debug.log('checkStudioAccess user has access', this.baseKey, studio);\r\n\r\n PlayerUtil.redirectToView(this.$router, '/Studio', studio);\r\n return true;\r\n }\r\n\r\n Debug.log('checkStudioAccess - no access to', studio, response);\r\n return false;\r\n\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('checkStudioAccess error', message);\r\n return false;\r\n }\r\n }\r\n\r\n getStudioCategory() {\r\n if (!this.categories.length)\r\n return Globals.NewCategory;\r\n\r\n let category = this.categories.find(item => item.name == this.studio.category);\r\n if (category)\r\n return category;\r\n else\r\n return this.categories[0];\r\n }\r\n}\r\n"],"sourceRoot":""}