{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/modules/db.js","webpack:///./src/api/grants.js","webpack:///./src/store/modules/views.js","webpack:///./src/i18n/en/common.js","webpack:///./src/i18n/en/error.js","webpack:///./src/i18n/en/validation.js","webpack:///./src/i18n/en/models.js","webpack:///./src/i18n/en/menu.js","webpack:///./src/i18n/en/views.js","webpack:///./src/i18n/en/index.js","webpack:///./src/i18n/zh-Hans/common.js","webpack:///./src/i18n/zh-Hans/error.js","webpack:///./src/i18n/zh-Hans/validation.js","webpack:///./src/i18n/zh-Hans/models.js","webpack:///./src/i18n/zh-Hans/menu.js","webpack:///./src/i18n/zh-Hans/views.js","webpack:///./src/i18n/zh-Hans/index.js","webpack:///./src/i18n/index.js","webpack:///./src/api/passport.js","webpack:///./src/api/account.js","webpack:///./src/store/modules/session.js","webpack:///./src/components/Toast/Toast.vue?f028","webpack:///src/components/Toast/Toast.vue","webpack:///./src/components/Toast/Toast.vue?bdec","webpack:///./src/components/Toast/Toast.vue?20a3","webpack:///./src/components/Toast/index.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/store/index.js","webpack:///./src/App.vue?2f0a","webpack:///src/App.vue","webpack:///./src/App.vue?3359","webpack:///./src/App.vue","webpack:///./src/router/passport.js","webpack:///./src/router/account.js","webpack:///./src/router/consent.js","webpack:///./src/router/grants.js","webpack:///./src/router/error.js","webpack:///./src/router/index.js","webpack:///./src/plugins/vue-shortkey.js","webpack:///./src/mixins/BasicMixins.js","webpack:///./src/plugins/index.js","webpack:///./src/main.js","webpack:///./src/components/Toast/Toast.vue?aeb7","webpack:///./src/api/consent.js","webpack:///./src/api/app.js","webpack:///./src/utils/request.js","webpack:///./src/store/modules sync nonrecursive \\.js$","webpack:///./src/store/modules/app.js","webpack:///./src/utils/route.js","webpack:///./src/utils/validate.js","webpack:///./src/utils/error.js","webpack:///./src/utils/string.js","webpack:///./src/utils/index.js","webpack:///./src/configs/theme.js","webpack:///./src/configs/menu/index.js","webpack:///./src/configs/navigation.js","webpack:///./src/configs/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","adapter","LocalStorage","lowdb","Lowdb","defaults","write","namespaced","actions","context","path","set","getGrants","url","method","revoke","clientId","state","layouts","default","common","save","submit","close","ok","cancel","reset","tos","policy","required","optional","1","400","401","403","404","408","500","501","502","503","504","505","validation","invalidEmailFormat","models","countries","china","malaysia","nameFormats","unknown","surname_GivenName","surname_Space_GivenName","surname_Dot_GivenName","givenName_Space_Surname","account","nameIdentifier","avatar","origin","givenName","surname","nameFormat","email","mobilePhone","sex","birthday","registerIp","registerTime","loginIp","loginTime","loginCount","password","menu","search","profile","changePassword","grants","logout","views","passport","slogan","login","welcome","loginWithPassword","loginWithMobile","loginWithEmail","subtitle","noaccount","button","orsign","forgot","username","username_mobile","username_email","username_mobile_email","country","captcha","sendCaptcha","title","alert","yes","no","loggedOut","redirect","register","next","prev","hasAccount","agree","nameIdentifierHint","nameHint","passwordHint","mobileLoginAccountIs","emailLoginAccountIs","provision","associateWithCurrent","associateWithOther","createNewAccount","editAvatar","editMobilePhoneDialog","editEmailDialog","oldPassword","newPassword","confirmPassword","success","consent","alertHtml","changeAccount","invalidConsentRequest","noGrants","created","expires","identityGrants","apiGrants","index","content","$vuetify","badge","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","delimiter","calendar","moreEvents","fileInput","counter","counterSize","timePicker","am","pm","pagination","wrapper","previous","page","currentPage","unset","forgotPassword","resetPassword","Vue","use","VueI18n","locale","fallbackLocale","availableLocales","flag","label","messages","en","zhHans","forEach","i18n","locales","getPassportViewModel","returnUrl","model","sendLoginSmsCaptcha","sendLoginEmailCaptcha","sendRegisterSmsCaptcha","sendRegisterEmailCaptcha","registerPreCheck","getLogoutViewModel","getLoggedOutViewModel","getProvisionViewModel","bindCurrentAccount","sendResetPasswordSmsCaptcha","sendResetPasswordEmailCaptcha","resetPasswordPreCheck","getAccountInfo","updatePersonalNameIdentifier","updatePersonalName","sendUpdatePersonalMobilePhoneCaptcha","updatePersonalMobilePhone","sendUpdatePersonalEmailCaptcha","updatePersonalEmail","updatePersonalAccountInfo","updatePersonalPassword","currentCulture","accountInfo","accountId","getters","rootState","rootGetters","app","suggestCulture","load","dispatch","root","setCurrentCulture","vuetify","framework","lang","current","rtl","force","updateAccountInfo","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","color","y","x","multiLine","vertical","on","dismiss","scopedSlots","_u","fn","ref","attr","_b","_v","_s","closeIcon","closeText","_e","callback","$$v","active","expression","domProps","_t","staticRenderFns","init","globalOptions","cmp","queue","createCmp","options","component","Toast","componentOptions","slot","$slots","assign","body","$mount","$el","show","isQueueable","queueable","unshift","$on","isActive","wasActive","$nextTick","$destroy","toast","shorts","colors","methods","localOptions","getCmp","clearQueue","VBtn","VIcon","VSnackbar","Vuetify","directives","components","veutifyObj","config","theme","isRTL","dark","globalTheme","customProperties","themes","light","params","icons","iconfont","VuetifyToast","Vuex","files","require","keys","replace","Store","VApp","children","meta","authorize","VueRouter","routes","router","base","process","scrollBehavior","to","from","savedPosition","beforeEach","store","siteProfile","afterEach","install","VueShortkey","toastError","ex","$toast","setDocumentTitle","findComponent","predicate","stack","item","pop","$children","_","eachRight","subItem","generateUrl","qs","utils","route","setTheme","prop","vuetifyThemes","$set","mixin","BasicMixins","plugins","productionTip","h","App","getConsentViewModel","processConsent","getSupportCultures","getSiteProfile","culture","getErrorMessage","errorId","service","axios","baseURL","withCredentials","interceptors","headers","response","contentType","startsWith","dataAxios","errorMessages","tc","status","map","webpackContext","req","id","webpackContextResolve","product","configs","menuTheme","toolbarTheme","isToolbarDetached","isContentBoxed","supportCultures","promiseGetSiteProfile","mutations","setGlobalTheme","setRTL","setContentBoxed","isBoxed","setMenuTheme","setToolbarTheme","setTimeZone","zone","time","setTimeFormat","format","setCurrency","currency","setToolbarDetached","isDetached","PATH_SUPPORTCULTURES","PATH_SUGGESTCULTURE","setSupportCultures","setSuggestCulture","sessionCulture","getQueryString","$route","temp","toLowerCase","find","query","val","querys","queryStrings","k","v","encodeURIComponent","join","isEmail","str","test","userCancelled","noContent","args","RegExp","validate","string","background","surface","primary","secondary","accent","info","warning","items","icon","link","footer","text","version","navigation"],"mappings":"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","file":"js/app.198f9e33.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 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-03ff99d5\":\"2475a925\",\"chunk-2f2780b0\":\"88d0be29\",\"chunk-2d0aa157\":\"1c9fde7d\",\"chunk-2d0cf2d2\":\"b34c3301\",\"chunk-3835102c\":\"5d2fed1b\",\"chunk-3e82e6b3\":\"d7f1a4cf\",\"chunk-288a9c0e\":\"35f63815\",\"chunk-59d8c430\":\"48f296c3\",\"chunk-6906d3f2\":\"d2150501\",\"chunk-7be2aef0\":\"5b9903db\",\"chunk-1f91d973\":\"77c8fb60\",\"chunk-4c03f628\":\"323302fd\",\"chunk-c988d564\":\"d7c58823\",\"chunk-2039f0d7\":\"7b6ed1e9\",\"chunk-35a38480\":\"2ac51378\",\"chunk-6780d271\":\"395ef288\",\"chunk-ba351808\":\"72644482\",\"chunk-f507ae70\":\"d9cae0c4\",\"chunk-47a511e4\":\"527c232a\",\"chunk-7fc2099d\":\"3f3d03fb\",\"chunk-d0bcd12c\":\"5ff413f3\",\"chunk-50b4a9b2\":\"8f4a85d2\"}[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-03ff99d5\":1,\"chunk-2f2780b0\":1,\"chunk-3835102c\":1,\"chunk-3e82e6b3\":1,\"chunk-6906d3f2\":1,\"chunk-7be2aef0\":1,\"chunk-1f91d973\":1,\"chunk-4c03f628\":1,\"chunk-c988d564\":1,\"chunk-2039f0d7\":1,\"chunk-35a38480\":1,\"chunk-6780d271\":1,\"chunk-ba351808\":1,\"chunk-f507ae70\":1,\"chunk-47a511e4\":1,\"chunk-7fc2099d\":1,\"chunk-d0bcd12c\":1,\"chunk-50b4a9b2\":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-03ff99d5\":\"4a8ce8ea\",\"chunk-2f2780b0\":\"75d87c73\",\"chunk-2d0aa157\":\"31d6cfe0\",\"chunk-2d0cf2d2\":\"31d6cfe0\",\"chunk-3835102c\":\"2574e278\",\"chunk-3e82e6b3\":\"bced5463\",\"chunk-288a9c0e\":\"31d6cfe0\",\"chunk-59d8c430\":\"31d6cfe0\",\"chunk-6906d3f2\":\"331e636b\",\"chunk-7be2aef0\":\"7936880e\",\"chunk-1f91d973\":\"805ec69d\",\"chunk-4c03f628\":\"68e6a77c\",\"chunk-c988d564\":\"2e81ce7d\",\"chunk-2039f0d7\":\"2fb758a9\",\"chunk-35a38480\":\"1163aafd\",\"chunk-6780d271\":\"3f114a6a\",\"chunk-ba351808\":\"dce9df5b\",\"chunk-f507ae70\":\"b8cbb964\",\"chunk-47a511e4\":\"6f3958e1\",\"chunk-7fc2099d\":\"04a4641a\",\"chunk-d0bcd12c\":\"803d6654\",\"chunk-50b4a9b2\":\"ae095a9e\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/**\r\n * 数据存储,基于lowdb\r\n * https://github.com/typicode/lowdb\r\n */\r\nimport Lowdb from 'lowdb';\r\nimport LocalStorage from 'lowdb/adapters/LocalStorage';\r\n\r\n// TODO: 此处是否必要指定要给数据库名\r\nconst adapter = new LocalStorage('default');\r\nconst lowdb = Lowdb(adapter);\r\n\r\n/**\r\n * 设置存储的默认值\r\n * 以键值对(Key-Value)的方式保存多个用户的配置信息, Key是用户的usrId (accountId)\r\n * 如果未出入usrId,那么key的值是空字符串'', 该值被认为用户共享的数据\r\n */\r\nlowdb\r\n .defaults({})\r\n .write();\r\n\r\nexport default {\r\n namespaced: true,\r\n actions: {\r\n /**\r\n * 获取数据\r\n */\r\n get (context, { path }) {\r\n return lowdb.get(path).value();\r\n },\r\n\r\n /**\r\n * @param {Object} context 上下文\r\n * @param {Number} usr 用户ID, 如果不传则认为是全局共享数据\r\n * @param {String} path 数据路径\r\n * @param {Object} value 存储值\r\n */\r\n set (context, { path, value }) {\r\n lowdb.set(path, value).write();\r\n return value;\r\n }\r\n }\r\n};\r\n","import request from '@/utils/request';\r\n\r\nexport function getGrants () {\r\n return request({\r\n url: '/grants/getGrants',\r\n method: 'post',\r\n data: {}\r\n });\r\n}\r\n\r\nexport function revoke ({ clientId }) {\r\n return request({\r\n url: '/grants/revoke',\r\n method: 'post',\r\n data: {\r\n clientId\r\n }\r\n });\r\n}\r\n","export default {\r\n namespaced: true,\r\n state: {\r\n layouts: {\r\n default: {\r\n }\r\n }\r\n }\r\n};\r\n","export default {\r\n common: {\r\n // add: 'Add',\r\n // cancel: 'Cancel',\r\n // description: 'Description',\r\n // delete: 'Delete',\r\n // title: 'Title',\r\n save: 'Save',\r\n submit: 'Submit',\r\n close: 'Close',\r\n ok: 'Okay',\r\n cancel: 'Cancel',\r\n reset: 'Reset',\r\n // faq: 'FAQ',\r\n // contact: 'Contact Us',\r\n error: 'Some error(s) occurs',\r\n tos: 'Terms of Service',\r\n policy: 'Privacy Policy',\r\n required: 'Required',\r\n optional: 'Optional'\r\n }\r\n};\r\n","export default {\r\n error: {\r\n 1: 'User canceled',\r\n\r\n // HTTP错误码\r\n 400: '请求错误',\r\n 401: '未授权,请登录',\r\n 403: '拒绝访问',\r\n 404: '请求地址出错: {url}',\r\n 408: '请求超时',\r\n 500: '服务器内部错误',\r\n 501: '服务未实现',\r\n 502: '网关错误',\r\n 503: '服务不可用',\r\n 504: '网关超时',\r\n 505: 'HTTP版本不受支持'\r\n }\r\n};\r\n","export default {\r\n validation: {\r\n required: 'required',\r\n invalidEmailFormat: 'invalid email format'\r\n }\r\n};\r\n","export default {\r\n models: {\r\n countries: {\r\n china: 'China',\r\n malaysia: 'Malaysia'\r\n },\r\n nameFormats: {\r\n /* eslint-disable */\r\n unknown: 'N/A',\r\n surname_GivenName: '{Surname}{Given name}',\r\n surname_Space_GivenName: '{Surname} {Given name}',\r\n surname_Dot_GivenName: '{Surname}.{Given name}',\r\n givenName_Space_Surname: '{Given name} {Surname}'\r\n /* eslint-enable */\r\n },\r\n account: {\r\n nameIdentifier: 'Account',\r\n name: 'Name',\r\n avatar: 'Avatar',\r\n state: 'State',\r\n origin: 'Origin',\r\n givenName: 'Firstname',\r\n surname: 'Lastname',\r\n nameFormat: 'Name format',\r\n email: 'Email',\r\n mobilePhone: 'Phone',\r\n sex: 'Gender',\r\n birthday: 'Birthday',\r\n registerIp: 'Register IP',\r\n registerTime: 'Register time',\r\n loginIp: 'Login IP',\r\n loginTime: 'Login time',\r\n loginCount: 'Login times',\r\n password: 'Password'\r\n }\r\n }\r\n};\r\n","export default {\r\n menu: {\r\n search: 'Search',\r\n account: 'Account',\r\n profile: 'Profile',\r\n changePassword: 'Change password',\r\n grants: 'Grants',\r\n logout: 'Logout'\r\n }\r\n};\r\n","export default {\r\n views: {\r\n layouts: {\r\n passport: {\r\n slogan: 'Welcome! Let\\'s build amazing things together.'\r\n }\r\n },\r\n passport: {\r\n login: {\r\n welcome: 'Welcome',\r\n loginWithPassword: 'Sign in',\r\n loginWithMobile: 'Sign in with phone',\r\n loginWithEmail: 'Sign in',\r\n subtitle: 'Sign in to your account',\r\n noaccount: 'Don\\'t have an account?',\r\n create: 'Create one here',\r\n button: 'Sign In',\r\n orsign: 'Or sign in with',\r\n forgot: 'Forgot password?'\r\n },\r\n loginWithPassword: {\r\n username: 'Name',\r\n /*eslint-disable */\r\n username_mobile: 'Phone, or name',\r\n username_email: 'Email or name',\r\n username_mobile_email: 'Email, phone, or name',\r\n /*eslint-enabled */\r\n password: 'Password'\r\n },\r\n loginWithMobile: {\r\n country: 'Country',\r\n mobilePhone: 'Phone',\r\n captcha: 'Captcha',\r\n sendCaptcha: 'Send code',\r\n button: 'Sign In'\r\n },\r\n loginWithEmail: {\r\n email: 'Email',\r\n captcha: 'Captcha',\r\n sendCaptcha: 'Send code',\r\n button: 'Sign In'\r\n },\r\n logout: {\r\n title: 'Log out',\r\n alert: 'Whether to log out?',\r\n yes: 'Yes',\r\n no: 'No'\r\n },\r\n loggedOut: {\r\n title: 'You are now logged out.',\r\n redirect: 'Click here to return to the {clientName} application.'\r\n },\r\n register: {\r\n title: 'Register',\r\n subtitle: 'Start a new journey',\r\n country: 'Country',\r\n mobilePhone: 'Phone',\r\n email: 'email',\r\n captcha: 'Captcha',\r\n sendCaptcha: 'Send code',\r\n nameIdentifier: 'Login',\r\n name: 'Display name',\r\n password: 'Password',\r\n next: 'Next',\r\n prev: 'Previous',\r\n button: 'Submit',\r\n hasAccount: 'Already have an account?',\r\n login: 'Log in',\r\n agree: 'By signing up, you agree to the',\r\n nameIdentifierHint: '4-20 ignore case characters. (a-z, 0-9, -, _)',\r\n nameHint: '2-20 ignore case characters',\r\n passwordHint: '6-20 case sensitive characters',\r\n mobileLoginAccountIs: 'Your mobile login account is:',\r\n emailLoginAccountIs: 'Your email login account is:'\r\n },\r\n provision: {\r\n title: 'Provision',\r\n associateWithCurrent: 'Associated with current account ({name})',\r\n associateWithOther: 'Associated with existing account',\r\n createNewAccount: 'Create a new account'\r\n }\r\n },\r\n account: {\r\n profile: {\r\n title: 'Account profile',\r\n nameIdentifierHint: 'It can be modified twice a year',\r\n nameHint: 'It can be modified twice a year',\r\n editAvatar: 'Edit avatar'\r\n },\r\n // 修改手机号码\r\n editMobilePhoneDialog: {\r\n title: 'Change phone number',\r\n country: 'Country',\r\n mobilePhone: 'Phone',\r\n captcha: 'Captcha',\r\n sendCaptcha: 'Send code'\r\n },\r\n // 修改邮箱\r\n editEmailDialog: {\r\n title: 'Change email',\r\n email: 'Email',\r\n captcha: 'Captcha',\r\n sendCaptcha: 'Send code'\r\n },\r\n // 修改密码\r\n changePassword: {\r\n title: 'Change password',\r\n oldPassword: 'Old password',\r\n newPassword: 'New password',\r\n confirmPassword: 'Confirm password',\r\n success: 'Password changed'\r\n }\r\n },\r\n consent: {\r\n alertHtml: '{clientName} is requesting your permission',\r\n yes: 'Yes, Allow',\r\n no: 'No, Do not allow',\r\n changeAccount: 'Use other account',\r\n invalidConsentRequest: 'Invalid request'\r\n },\r\n grants: {\r\n title: 'Grants',\r\n revoke: 'Revoke access',\r\n noGrants: 'You have not given access to any applications',\r\n created: 'Created',\r\n expires: 'Expires',\r\n identityGrants: 'Identity Grants',\r\n apiGrants: 'API Grants'\r\n },\r\n error: {\r\n index: {\r\n title: 'Some error occurred'\r\n },\r\n 400: {\r\n title: 'OOPS! Something went wrong here',\r\n content: 'Our experts are working to fix the issue.',\r\n button: 'Send me Back'\r\n },\r\n 404: {\r\n title: 'How did you get here?',\r\n content: 'Sorry we can\\'t seem to find the page you\\'re looking for.',\r\n button: 'Send me Back'\r\n }\r\n }\r\n }\r\n};\r\n","import common from './common';\r\nimport error from './error';\r\nimport validation from './validation';\r\nimport models from './models';\r\nimport menu from './menu';\r\nimport views from './views';\r\n\r\nexport default {\r\n ...common,\r\n ...error,\r\n ...validation,\r\n ...models,\r\n ...menu,\r\n ...views,\r\n // Vuetify components translations\r\n $vuetify: {\r\n badge: 'Badge',\r\n close: 'Close',\r\n dataIterator: {\r\n noResultsText: 'No matching records found',\r\n loadingText: 'Loading items...'\r\n },\r\n dataTable: {\r\n itemsPerPageText: 'Rows per page:',\r\n ariaLabel: {\r\n sortDescending: 'Sorted descending.',\r\n sortAscending: 'Sorted ascending.',\r\n sortNone: 'Not sorted.',\r\n activateNone: 'Activate to remove sorting.',\r\n activateDescending: 'Activate to sort descending.',\r\n activateAscending: 'Activate to sort ascending.'\r\n },\r\n sortBy: 'Sort by'\r\n },\r\n dataFooter: {\r\n itemsPerPageText: 'Items per page:',\r\n itemsPerPageAll: 'All',\r\n nextPage: 'Next page',\r\n prevPage: 'Previous page',\r\n firstPage: 'First page',\r\n lastPage: 'Last page',\r\n pageText: '{0}-{1} of {2}'\r\n },\r\n datePicker: {\r\n itemsSelected: '{0} selected',\r\n nextMonthAriaLabel: 'Next month',\r\n nextYearAriaLabel: 'Next year',\r\n prevMonthAriaLabel: 'Previous month',\r\n prevYearAriaLabel: 'Previous year'\r\n },\r\n noDataText: 'No data available',\r\n carousel: {\r\n prev: 'Previous visual',\r\n next: 'Next visual',\r\n ariaLabel: {\r\n delimiter: 'Carousel slide {0} of {1}'\r\n }\r\n },\r\n calendar: {\r\n moreEvents: '{0} more'\r\n },\r\n fileInput: {\r\n counter: '{0} files',\r\n counterSize: '{0} files ({1} in total)'\r\n },\r\n timePicker: {\r\n am: 'AM',\r\n pm: 'PM'\r\n },\r\n pagination: {\r\n ariaLabel: {\r\n wrapper: 'Pagination Navigation',\r\n next: 'Next page',\r\n previous: 'Previous page',\r\n page: 'Goto Page {0}',\r\n currentPage: 'Current Page, Page {0}'\r\n }\r\n }\r\n }\r\n};\r\n","export default {\r\n common: {\r\n // add: '加',\r\n // cancel: '取消',\r\n // description: '描述',\r\n // delete: '删除',\r\n // title: '标题',\r\n save: '保存',\r\n submit: '提交',\r\n close: '关闭',\r\n ok: '确定',\r\n cancel: '取消',\r\n reset: '重置',\r\n // faq: '常问问题',\r\n // contact: '联系我们',\r\n error: '出现一些错误',\r\n tos: '服务条款',\r\n policy: '隐私政策',\r\n required: '必要项',\r\n optional: '可选项',\r\n unset: '未设置'\r\n }\r\n};\r\n","export default {\r\n error: {\r\n 1: '用户取消',\r\n\r\n // HTTP错误码\r\n 400: '请求错误',\r\n 401: '未授权,请登录',\r\n 403: '拒绝访问',\r\n 404: '请求地址出错: {url}',\r\n 408: '请求超时',\r\n 500: '服务器内部错误',\r\n 501: '服务未实现',\r\n 502: '网关错误',\r\n 503: '服务不可用',\r\n 504: '网关超时',\r\n 505: 'HTTP版本不受支持'\r\n }\r\n};\r\n","export default {\r\n validation: {\r\n required: '必填',\r\n invalidEmailFormat: '电子邮箱格式错误'\r\n }\r\n};\r\n","export default {\r\n models: {\r\n countries: {\r\n china: '中国',\r\n malaysia: '马来西亚'\r\n },\r\n nameFormats: {\r\n /* eslint-disable */\r\n unknown: 'N/A',\r\n surname_GivenName: '{姓氏}{名字}',\r\n surname_Space_GivenName: '{姓氏} {名字}',\r\n surname_Dot_GivenName: '{姓氏}.{名字}',\r\n givenName_Space_Surname: '{名字} {姓氏}'\r\n /* eslint-enable */\r\n },\r\n account: {\r\n nameIdentifier: '登录ID',\r\n name: '昵称',\r\n avatar: '头像',\r\n state: '状态',\r\n origin: '来源',\r\n givenName: '名字',\r\n surname: '姓氏',\r\n nameFormat: '姓名格式',\r\n email: '电子邮箱',\r\n mobilePhone: '手机号码',\r\n sex: '性别',\r\n birthday: '生日',\r\n registerIp: '注册IP',\r\n registerTime: '注册时间',\r\n loginIp: '登录IP',\r\n loginTime: '登录时间',\r\n loginCount: '登录次数',\r\n password: '密码'\r\n }\r\n }\r\n};\r\n","export default {\r\n menu: {\r\n search: '搜索',\r\n account: '账号',\r\n profile: '账号资料',\r\n changePassword: '修改密码',\r\n grants: '授权',\r\n logout: '退出'\r\n }\r\n};\r\n","export default {\r\n views: {\r\n layouts: {\r\n passport: {\r\n slogan: '欢迎光临!让我们一起创造奇迹。'\r\n }\r\n },\r\n passport: {\r\n login: {\r\n welcome: '欢迎登录',\r\n loginWithPassword: '账号登录',\r\n loginWithMobile: '手机登录',\r\n loginWithEmail: '邮箱登录',\r\n subtitle: '登录到您的账号',\r\n noaccount: '还没有帐号?',\r\n create: '在此处创建一个',\r\n button: '登录',\r\n orsign: '或使用登录',\r\n forgot: '忘记密码'\r\n },\r\n loginWithPassword: {\r\n username: '登录ID',\r\n /*eslint-disable */\r\n username_mobile: '登录ID / 手机号码',\r\n username_email: '登录ID / 电子邮箱',\r\n username_mobile_email: '账号名 / 手机号码 / 电子邮箱',\r\n /*eslint-enabled */\r\n password: '密码'\r\n },\r\n loginWithMobile: {\r\n country: '国家',\r\n mobilePhone: '手机号码',\r\n captcha: '验证码',\r\n sendCaptcha: '发送验证码',\r\n button: '登录'\r\n },\r\n loginWithEmail: {\r\n email: '电子邮箱',\r\n captcha: '验证码',\r\n sendCaptcha: '发送验证码',\r\n button: '登录'\r\n },\r\n logout: {\r\n title: '退出登录',\r\n alert: '是否退出登录?',\r\n yes: '是',\r\n no: '不'\r\n },\r\n loggedOut: {\r\n title: '您已经退出登录。',\r\n redirect: '点击返回到{clientName}'\r\n },\r\n register: {\r\n title: '注册账号',\r\n subtitle: '开启新旅程',\r\n country: '国家',\r\n mobilePhone: '手机号码',\r\n email: '电子邮箱',\r\n captcha: '验证码',\r\n sendCaptcha: '发送验证码',\r\n nameIdentifier: '登录ID',\r\n name: '昵称',\r\n password: '密码',\r\n next: '下一步',\r\n prev: '上一步',\r\n button: '提交',\r\n hasAccount: '已经有帐号了?',\r\n login: '登录',\r\n agree: '签署即表示您同意',\r\n nameIdentifierHint: '4-20位忽略大小写字符(a-z, 0-9, -, _),并且必须包含字母',\r\n nameHint: '2-20位忽略大小写字符',\r\n passwordHint: '6-20位区分大小写字符',\r\n mobileLoginAccountIs: '您的手机登录账号是:',\r\n emailLoginAccountIs: '您的邮箱登录账号是:'\r\n },\r\n provision: {\r\n title: '关联账号',\r\n associateWithCurrent: '关联当前账号({name})',\r\n associateWithOther: '关联已有账号',\r\n createNewAccount: '创建新账号'\r\n },\r\n forgotPassword: {\r\n title: '找回密码',\r\n country: '国家',\r\n mobilePhone: '手机号码',\r\n email: '电子邮箱',\r\n captcha: '验证码',\r\n sendCaptcha: '发送验证码',\r\n button: '下一步'\r\n },\r\n resetPassword: {\r\n title: '重设密码',\r\n newPassword: '新的密码',\r\n confirmPassword: '确认密码',\r\n success: '密码已修改,请重新登录'\r\n }\r\n },\r\n account: {\r\n profile: {\r\n title: '账号资料',\r\n nameIdentifierHint: '一年可以修改两次',\r\n nameHint: '一年可以修改两次',\r\n editAvatar: '修改形象'\r\n },\r\n // 修改手机号码\r\n editMobilePhoneDialog: {\r\n title: '修改手机号码',\r\n country: '国家',\r\n mobilePhone: '手机号码',\r\n captcha: '验证码',\r\n sendCaptcha: '发送验证码'\r\n },\r\n // 修改邮箱\r\n editEmailDialog: {\r\n title: '修改电子邮箱',\r\n email: '电子邮箱',\r\n captcha: '验证码',\r\n sendCaptcha: '发送验证码'\r\n },\r\n // 修改密码\r\n changePassword: {\r\n title: '修改密码',\r\n oldPassword: '旧密码',\r\n newPassword: '新密码',\r\n confirmPassword: '确认密码',\r\n success: '修改密码成功'\r\n }\r\n },\r\n consent: {\r\n alertHtml: '授权 {clientName}',\r\n yes: '允许',\r\n no: '拒绝',\r\n changeAccount: '使用其他账号',\r\n invalidConsentRequest: '无效的请求'\r\n },\r\n grants: {\r\n title: '授权',\r\n revoke: '撤销授权',\r\n noGrants: '您没有授予访问任何应用程序',\r\n created: '创建于',\r\n expires: '过期时间',\r\n identityGrants: '身份授权',\r\n apiGrants: 'API授权'\r\n },\r\n error: {\r\n index: {\r\n title: '出错了!'\r\n },\r\n 400: {\r\n title: '哎呀!出状况了',\r\n content: '我们在努力解决这个问题',\r\n button: '带我回家'\r\n },\r\n 404: {\r\n title: '找不到方向了',\r\n content: '抱歉!我们没有找到你想访问的页面',\r\n button: '带我回家'\r\n }\r\n }\r\n }\r\n};\r\n","import common from './common';\r\nimport error from './error';\r\nimport validation from './validation';\r\nimport models from './models';\r\nimport menu from './menu';\r\nimport views from './views';\r\n\r\nexport default {\r\n ...common,\r\n ...error,\r\n ...validation,\r\n ...models,\r\n ...menu,\r\n ...views,\r\n '$vuetify': {\r\n 'badge': '徽章',\r\n 'close': '关',\r\n 'dataIterator': {\r\n 'noResultsText': '没有找到匹配的记录',\r\n 'loadingText': '正在载入项目...'\r\n },\r\n 'dataTable': {\r\n 'itemsPerPageText': '每页行数:',\r\n 'ariaLabel': {\r\n 'sortDescending': '降序排列。',\r\n 'sortAscending': '升序排列。',\r\n 'sortNone': '未排序。',\r\n 'activateNone': '激活以删除排序。',\r\n 'activateDescending': '激活以降序排列。',\r\n 'activateAscending': '激活以升序排序。'\r\n },\r\n 'sortBy': '排序方式'\r\n },\r\n 'dataFooter': {\r\n 'itemsPerPageText': '每页项目:',\r\n 'itemsPerPageAll': '所有',\r\n 'nextPage': '下一页',\r\n 'prevPage': '上一页',\r\n 'firstPage': '第一页',\r\n 'lastPage': '最后一页',\r\n 'pageText': '{2}中的{0}-{1}'\r\n },\r\n 'datePicker': {\r\n 'itemsSelected': '已选择{0}',\r\n 'nextMonthAriaLabel': '下个月',\r\n 'nextYearAriaLabel': '明年',\r\n 'prevMonthAriaLabel': '前一个月',\r\n 'prevYearAriaLabel': '前一年'\r\n },\r\n 'noDataText': '没有可用数据',\r\n 'carousel': {\r\n 'prev': '以前的视觉',\r\n 'next': '下一个视觉',\r\n 'ariaLabel': {\r\n 'delimiter': '{1}的轮播幻灯片{0}'\r\n }\r\n },\r\n 'calendar': {\r\n 'moreEvents': '还有{0}个'\r\n },\r\n 'fileInput': {\r\n 'counter': '{0}个文件',\r\n 'counterSize': '{0}个文件(共{1}个)'\r\n },\r\n 'timePicker': {\r\n 'am': 'AM',\r\n 'pm': 'PM'\r\n },\r\n 'pagination': {\r\n 'ariaLabel': {\r\n 'wrapper': '上午',\r\n 'next': '下午',\r\n 'previous': '分页导航',\r\n 'page': '下一页',\r\n 'currentPage': '上一页'\r\n }\r\n }\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport VueI18n from 'vue-i18n';\r\nVue.use(VueI18n);\r\n\r\nimport en from './en';\r\nimport zhHans from './zh-Hans';\r\n\r\n// 当前语言\r\nconst locale = 'en';\r\nconst fallbackLocale = 'en';\r\nconst availableLocales = [{\r\n code: 'en',\r\n flag: 'us',\r\n label: 'English',\r\n messages: en\r\n}, {\r\n code: 'zh-Hans',\r\n flag: 'cn',\r\n label: '简体中文',\r\n messages: zhHans\r\n}];\r\n\r\nconst messages = {};\r\n\r\navailableLocales.forEach((l) => {\r\n messages[l.code] = l.messages;\r\n});\r\n\r\nexport const i18n = new VueI18n({\r\n locale,\r\n fallbackLocale,\r\n messages\r\n});\r\n\r\ni18n.locales = availableLocales;\r\n\r\nexport default i18n;\r\n","import request from '@/utils/request';\r\n\r\nexport function getPassportViewModel ({ returnUrl }) {\r\n return request({\r\n url: '/passport/getPassportViewModel',\r\n method: 'post',\r\n data: {\r\n returnUrl\r\n }\r\n });\r\n}\r\n\r\nexport function loginWithPassword (model) {\r\n return request({\r\n url: '/passport/loginWithPassword',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function loginWithMobile (model) {\r\n return request({\r\n url: '/passport/loginWithMobile',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function loginWithEmail (model) {\r\n return request({\r\n url: '/passport/loginWithEmail',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendLoginSmsCaptcha (model) {\r\n return request({\r\n url: '/passport/sendLoginSmsCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendLoginEmailCaptcha (model) {\r\n return request({\r\n url: '/passport/sendLoginEmailCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendRegisterSmsCaptcha (model) {\r\n return request({\r\n url: '/passport/sendRegisterSmsCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendRegisterEmailCaptcha (model) {\r\n return request({\r\n url: '/passport/sendRegisterEmailCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function registerPreCheck (model) {\r\n return request({\r\n url: '/passport/registerPreCheck',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function register (model) {\r\n return request({\r\n url: '/passport/register',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function getLogoutViewModel (model) {\r\n return request({\r\n url: '/passport/getLogoutViewModel',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function getLoggedOutViewModel (model) {\r\n return request({\r\n url: '/passport/getLoggedOutViewModel',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function getProvisionViewModel () {\r\n return request({\r\n url: '/passport/getProvisionViewModel',\r\n method: 'post',\r\n data: {}\r\n });\r\n}\r\n\r\nexport function bindCurrentAccount () {\r\n return request({\r\n url: '/passport/bindCurrentAccount',\r\n method: 'post',\r\n data: {}\r\n });\r\n}\r\n\r\nexport function sendResetPasswordSmsCaptcha (model) {\r\n return request({\r\n url: '/passport/sendResetPasswordSmsCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendResetPasswordEmailCaptcha (model) {\r\n return request({\r\n url: '/passport/sendResetPasswordEmailCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function resetPasswordPreCheck (model) {\r\n return request({\r\n url: '/passport/resetPasswordPreCheck',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function resetPassword (model) {\r\n return request({\r\n url: '/passport/resetPassword',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n","import request from '@/utils/request';\r\n\r\nexport function getAccountInfo () {\r\n return request({\r\n url: '/account/getAccountInfo',\r\n method: 'post',\r\n data: {}\r\n });\r\n}\r\n\r\nexport function updatePersonalNameIdentifier (model) {\r\n return request({\r\n url: '/account/updatePersonalNameIdentifier',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function updatePersonalName (model) {\r\n return request({\r\n url: '/account/updatePersonalName',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendUpdatePersonalMobilePhoneCaptcha (model) {\r\n return request({\r\n url: '/account/sendUpdatePersonalMobilePhoneCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function updatePersonalMobilePhone (model) {\r\n return request({\r\n url: '/account/updatePersonalMobilePhone',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function sendUpdatePersonalEmailCaptcha (model) {\r\n return request({\r\n url: '/account/sendUpdatePersonalEmailCaptcha',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function updatePersonalEmail (model) {\r\n return request({\r\n url: '/account/updatePersonalEmail',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function updatePersonalAvatar (model) {\r\n return request({\r\n url: '/account/updatePersonalAvatar',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function updatePersonalAccountInfo (model) {\r\n return request({\r\n url: '/account/updatePersonalAccountInfo',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n\r\nexport function updatePersonalPassword (model) {\r\n return request({\r\n url: '/account/updatePersonalPassword',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n","import Vue from 'vue';\r\nimport i18n from '@/i18n';\r\nimport vuetify from '@/plugins/vuetify';\r\nimport { getAccountInfo } from '@/api';\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n currentCulture: null,\r\n\r\n accountInfo: {\r\n accountId: 0,\r\n nameIdentifier: null,\r\n name: null,\r\n mobilePhone: null,\r\n email: null,\r\n avatar: null\r\n }\r\n },\r\n getters: {\r\n /**\r\n * 获取当前语言。\r\n * 调用方法 -> store.getters['session/currentCulture']\r\n *\r\n * @param {Object} state vuex state\r\n */\r\n currentCulture (state, getters, rootState, rootGetters) {\r\n return state.currentCulture || rootState.app.suggestCulture;\r\n }\r\n },\r\n actions: {\r\n async load ({ dispatch, state, rootState }) {\r\n const path = 'session.currentCulture';\r\n if (!state.currentCulture) {\r\n var currentCulture =\r\n (await dispatch('db/get', { path }, { root: true })) ||\r\n rootState.app.suggestCulture;\r\n\r\n await dispatch('setCurrentCulture', currentCulture);\r\n }\r\n\r\n // 加载当前登录用户的信息\r\n await dispatch('getAccountInfo');\r\n },\r\n\r\n async setCurrentCulture ({ dispatch, state }, value) {\r\n const path = 'session.currentCulture';\r\n await dispatch('db/set', { path, value }, { root: true });\r\n\r\n state.currentCulture = value;\r\n\r\n // 设置语言\r\n i18n.locale = value;\r\n vuetify.framework.lang.current = value;\r\n\r\n // TODO: 此处需要根据配置来确定是否启用rtl\r\n // example on how certain languages can be RTL\r\n if (value === 'ar') {\r\n vuetify.framework.rtl = true;\r\n } else {\r\n vuetify.framework.rtl = false;\r\n }\r\n },\r\n\r\n async getAccountInfo ({ dispatch, state }, { force = false } = { }) {\r\n if (!state.accountInfo.accountId || force) {\r\n var accountInfo = await getAccountInfo();\r\n await dispatch('updateAccountInfo', accountInfo);\r\n }\r\n return state.accountInfo;\r\n },\r\n\r\n /**\r\n * 更新的账号资料\r\n */\r\n async updateAccountInfo ({ dispatch, state }, value) {\r\n if (value) {\r\n for (var key in value) {\r\n Vue.set(state.accountInfo, key, value[key]);\r\n }\r\n }\r\n return state.accountInfo;\r\n }\r\n }\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-snackbar',{staticClass:\"v-application\",attrs:{\"color\":_vm.color,\"bottom\":_vm.y === 'bottom',\"top\":_vm.y === 'top',\"left\":_vm.x === 'left',\"right\":_vm.x === 'right',\"multi-line\":_vm.multiLine,\"vertical\":_vm.vertical,\"role\":\"alert\"},on:{\"click\":_vm.dismiss},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attr = ref.attr;\nreturn [(_vm.showClose)?[(_vm.closeIcon)?_c('v-btn',_vm._b({staticClass:\"mr-1\",attrs:{\"color\":_vm.color,\"fab\":\"\",\"dark\":\"\",\"x-small\":\"\"},on:{\"click\":_vm.close}},'v-btn',attr,false),[_c('v-icon',[_vm._v(_vm._s(_vm.closeIcon))])],1):_c('v-btn',_vm._b({attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.close}},'v-btn',attr,false),[_vm._v(\" \"+_vm._s(_vm.closeText)+\" \")])]:_vm._e()]}}]),model:{value:(_vm.active),callback:function ($$v) {_vm.active=$$v},expression:\"active\"}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.message)}},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toast.vue?vue&type=script&lang=js&\"; 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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toast.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Toast.vue?vue&type=template&id=5856f19e&\"\nimport script from \"./Toast.vue?vue&type=script&lang=js&\"\nexport * from \"./Toast.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Toast.vue?vue&type=style&index=0&lang=css&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VIcon,VSnackbar})\n","/**\r\n * 摘录自 https://github.com/eolant/vuetify-toast-snackbar\r\n */\r\nimport Toast from './Toast.vue';\r\n\r\nfunction init (Vue, globalOptions = {}) {\r\n let cmp = null;\r\n const queue = [];\r\n const property = globalOptions.property || '$toast';\r\n\r\n function createCmp (options) {\r\n const component = new Vue(Toast);\r\n const componentOptions = { ...Vue.prototype[property].globalOptions, ...options };\r\n\r\n if (componentOptions.slot) {\r\n component.$slots.default = componentOptions.slot;\r\n delete componentOptions.slot;\r\n }\r\n\r\n Object.assign(component, componentOptions);\r\n document.body.appendChild(component.$mount().$el);\r\n\r\n return component;\r\n }\r\n\r\n function show (message, options = {}) {\r\n if (cmp) {\r\n const isQueueable = options.queueable !== undefined ? options.queueable : globalOptions.queueable;\r\n\r\n if (isQueueable) {\r\n queue.push({ message, options });\r\n } else {\r\n cmp.close();\r\n queue.unshift({ message, options });\r\n }\r\n\r\n return;\r\n }\r\n\r\n options.message = message;\r\n cmp = createCmp(options);\r\n cmp.$on('statusChange', (isActive, wasActive) => {\r\n if (wasActive && !isActive) {\r\n cmp.$nextTick(() => {\r\n cmp.$destroy();\r\n cmp = null;\r\n\r\n if (queue.length) {\r\n const toast = queue.shift();\r\n show(toast.message, toast.options);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n function shorts (options) {\r\n const colors = ['success', 'info', 'error', 'warning'];\r\n const methods = {};\r\n\r\n colors.forEach(color => {\r\n methods[color] = (message, options) => show(message, { color, ...options });\r\n });\r\n\r\n if (options.shorts) {\r\n for (const key in options.shorts) {\r\n const localOptions = options.shorts[key];\r\n methods[key] = (message, options) => show(message, { ...localOptions, ...options });\r\n }\r\n }\r\n\r\n return methods;\r\n }\r\n\r\n function getCmp () {\r\n return cmp;\r\n }\r\n\r\n function clearQueue () {\r\n return queue.splice(0, queue.length);\r\n }\r\n\r\n Vue.prototype[property] = Object.assign(show, {\r\n globalOptions,\r\n getCmp,\r\n clearQueue,\r\n ...shorts(globalOptions)\r\n });\r\n}\r\n\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(init);\r\n}\r\n\r\nexport default init;\r\n","/**\r\n * Vuetify\r\n */\r\n\r\nimport Vue from 'vue';\r\nimport i18n from '@/i18n';\r\nimport config from '../configs';\r\n\r\n// // For full framework\r\n// import Vuetify from 'vuetify/lib/framework';\r\n\r\n// For a-la-carte components - https://vuetifyjs.com/en/customization/a-la-carte/\r\nimport Vuetify, { VSnackbar, VBtn, VIcon } from 'vuetify/lib';\r\nimport VuetifyToast from '@/components/Toast';\r\n\r\n// 引入指示器\r\nimport * as directives from 'vuetify/lib/directives';\r\n\r\nVue.use(Vuetify, {\r\n directives,\r\n components: {\r\n VSnackbar,\r\n VBtn,\r\n VIcon\r\n }\r\n});\r\n\r\n// 引入图标样式, 这里使用的是mdi图标(material design icons)\r\n// (Ensure you are using css-loader)\r\nimport '@mdi/font/css/materialdesignicons.css';\r\n\r\n/**\r\n * Vuetify组件库\r\n */\r\nvar veutifyObj = new Vuetify({\r\n rtl: config.theme.isRTL,\r\n theme: {\r\n dark: config.theme.globalTheme === 'dark',\r\n options: {\r\n customProperties: true\r\n },\r\n themes: {\r\n dark: config.theme.dark,\r\n light: config.theme.light\r\n }\r\n },\r\n lang: {\r\n // locales: { zhHans },\r\n current: 'en',\r\n t: (key, ...params) => i18n.t(key, params)\r\n },\r\n icons: {\r\n iconfont: 'mdi'\r\n }\r\n});\r\nVue.use(VuetifyToast, { $vuetify: veutifyObj.framework });\r\nexport default veutifyObj;\r\n","import _ from 'lodash';\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nVue.use(Vuex);\r\n\r\n// 遍历modules目录下的文件,并将其合并到modules\r\nconst files = require.context('./modules', false, /\\.js$/);\r\nconst modules = {};\r\nfiles.keys().forEach(key => {\r\n modules[key.replace(/(\\.\\/|\\.js)/g, '')] = files(key).default;\r\n});\r\n\r\n/**\r\n * Main Vuex Store\r\n */\r\nexport default new Vuex.Store({\r\n namespaced: true,\r\n modules,\r\n actions: {\r\n /**\r\n * 加载存储\r\n */\r\n async load ({ dispatch }) {\r\n await dispatch('app/load', null, { root: true });\r\n await dispatch('session/load', null, { root: true });\r\n\r\n // // TODO: 目前只支持一级,考虑是否要支持多级命名空间处理\r\n // _.forEach(modules, async (m, k) => {\r\n // if (m.namespaced && m.actions && m.actions.load) {\r\n // await dispatch(`${k}/load`, null, { root: true });\r\n // }\r\n // });\r\n }\r\n }\r\n});\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; 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--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=8f482f02&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","export default [\r\n {\r\n path: '/passport',\r\n redirect: '/passport/login',\r\n component: () => import('@/views/layouts/passport'),\r\n children: [\r\n {\r\n path: '/passport/login',\r\n component: () => import('@/views/passport/login')\r\n },\r\n {\r\n path: '/passport/provision',\r\n component: () => import('@/views/passport/provision')\r\n },\r\n {\r\n path: '/passport/register',\r\n component: () => import('@/views/passport/register')\r\n },\r\n {\r\n path: '/passport/logout',\r\n meta: {\r\n authorize: true\r\n },\r\n component: () => import('@/views/passport/logout')\r\n },\r\n {\r\n path: '/passport/logged-out',\r\n component: () => import('@/views/passport/loggedOut')\r\n },\r\n {\r\n path: '/passport/forgot-password',\r\n component: () => import('@/views/passport/forgotPassword')\r\n }\r\n ]\r\n }\r\n];\r\n","export default [\r\n {\r\n path: '/account',\r\n redirect: '/account/profile',\r\n component: () => import('@/views/layouts/default'),\r\n children: [\r\n {\r\n path: '/account/profile',\r\n meta: {\r\n authorize: true\r\n },\r\n component: () => import('@/views/account/profile')\r\n },\r\n {\r\n path: '/account/change-password',\r\n meta: {\r\n authorize: true\r\n },\r\n component: () => import('@/views/account/changePassword')\r\n }\r\n ]\r\n }\r\n];\r\n","export default [\r\n {\r\n path: '/consent',\r\n meta: {\r\n authorize: true\r\n },\r\n component: () => import('@/views/consent')\r\n }\r\n];\r\n","export default [\r\n {\r\n path: '/grants',\r\n component: () => import('@/views/layouts/default'),\r\n children: [\r\n {\r\n path: '/grants',\r\n meta: {\r\n authorize: true\r\n },\r\n component: () => import('@/views/grants')\r\n }\r\n ]\r\n }\r\n];\r\n","export default [\r\n {\r\n path: '/error',\r\n component: () => import('@/views/error')\r\n },\r\n {\r\n path: '/error/400',\r\n component: () => import('@/views/error/400.vue')\r\n },\r\n {\r\n path: '*',\r\n name: 'error',\r\n component: () => import('@/views/error/404.vue')\r\n }\r\n];\r\n","import Vue from 'vue';\r\nimport VueRouter from 'vue-router';\r\nimport store from '@/store';\r\n// 应用路由\r\nVue.use(VueRouter);\r\n\r\n// 路由数据\r\nimport passport from './passport';\r\nimport account from './account';\r\nimport consent from './consent';\r\nimport grants from './grants';\r\nimport error from './error';\r\n\r\nconst routes = [\r\n {\r\n path: '/',\r\n redirect: '/account',\r\n component: () => import('@/views/layouts/default')\r\n },\r\n ...passport,\r\n ...account,\r\n ...grants,\r\n ...consent,\r\n ...error,\r\n {\r\n // Terms of services 服务条款\r\n path: '/tos',\r\n component: () => import('@/views/tos')\r\n },\r\n {\r\n path: '/policy',\r\n component: () => import('@/views/policy')\r\n }\r\n];\r\n\r\nconst router = new VueRouter({\r\n routes,\r\n mode: 'history',\r\n base: process.env.BASE_URL || '/',\r\n scrollBehavior (to, from, savedPosition) {\r\n if (savedPosition) return savedPosition;\r\n\r\n return { x: 0, y: 0 };\r\n }\r\n});\r\n\r\n/**\r\n * 路由拦截,权限验证\r\n */\r\nrouter.beforeEach(async (to, from, next) => {\r\n try {\r\n // 确保加载必要的存储数据\r\n await store.dispatch('load');\r\n\r\n var siteProfile = await store.dispatch('app/getSiteProfile');\r\n document.title = siteProfile.name;\r\n\r\n // 判断是否有权限访问\r\n var authorize = to.meta && to.meta.authorize;\r\n if (!authorize) {\r\n return next();\r\n }\r\n\r\n // 注意,此处账号未登录还是有信息,accountId===0\r\n var accountInfo = await store.dispatch('session/getAccountInfo');\r\n if (accountInfo.accountId) {\r\n return next();\r\n } else {\r\n return next('/passport/login');\r\n }\r\n } catch {\r\n if (to.path === '/error/400') {\r\n return next();\r\n } else {\r\n return next('/error/400');\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * After each route update\r\n */\r\nrouter.afterEach((to, from) => {\r\n});\r\n\r\nexport default router;\r\n","/**\r\n * Easy keyboard shortcuts\r\n * https://github.com/iFgR/vue-shortkey\r\n */\r\n\r\nimport VueShortkey from 'vue-shortkey';\r\nexport default {\r\n install (Vue, options) {\r\n Vue.use(VueShortkey);\r\n }\r\n};\r\n","import _ from 'lodash';\r\nimport utils from '@/utils';\r\n\r\nexport default {\r\n methods: {\r\n toastError: function (ex) {\r\n if (ex.error > 100) {\r\n this.$toast.error(ex.message);\r\n }\r\n },\r\n setDocumentTitle (title) {\r\n document.title = title;\r\n },\r\n findComponent (predicate) {\r\n var stack = [this];\r\n\r\n while (stack.length > 0) {\r\n var item = stack.pop();\r\n if (predicate(item)) {\r\n return item;\r\n }\r\n\r\n if (item.$children && item.$children.length > 0) {\r\n _.eachRight(item.$children, (subItem) => {\r\n stack.push(subItem);\r\n });\r\n }\r\n }\r\n return null;\r\n },\r\n generateUrl (url, qs) {\r\n return utils.route.generateUrl(url, qs);\r\n },\r\n setTheme (theme) {\r\n if (!theme) return;\r\n\r\n var vuetifyThemes = this.$vuetify.theme.themes;\r\n\r\n var prop;\r\n if (theme.light) {\r\n for (prop in theme.light) {\r\n this.$set(vuetifyThemes.light, prop, theme.light[prop]);\r\n }\r\n }\r\n if (theme.dark) {\r\n for (prop in theme.dark) {\r\n this.$set(vuetifyThemes.dark, prop, theme.dark[prop]);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","import VueShortkey from './vue-shortkey';\r\nimport BasicMixins from '@/mixins/BasicMixins';\r\n\r\nexport default {\r\n install (Vue, options) {\r\n Vue.use(VueShortkey);\r\n\r\n // 全局混入代码\r\n Vue.mixin(BasicMixins);\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport App from './App.vue';\r\n\r\n/**\r\n * 存储,路由,多语言\r\n */\r\nimport store from './store';\r\nimport router from './router';\r\nimport i18n from './i18n';\r\n\r\n/**\r\n * 导入插件\r\n */\r\nimport plugins from './plugins';\r\nVue.use(plugins);\r\n\r\n// 导入vuetify\r\nimport vuetify from './plugins/vuetify';\r\n\r\n// 导入样式\r\nimport './assets/scss/theme.scss';\r\n\r\n/**\r\n * 构建应用\r\n */\r\n// 是否输出信息\r\nVue.config.productionTip = false;\r\n\r\nnew Vue({\r\n i18n,\r\n vuetify,\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app');\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toast.vue?vue&type=style&index=0&lang=css&\"","import request from '@/utils/request';\r\n\r\nexport function getConsentViewModel ({ returnUrl }) {\r\n return request({\r\n url: '/consent/getConsentViewModel',\r\n method: 'post',\r\n data: {\r\n returnUrl\r\n }\r\n });\r\n}\r\n\r\nexport function processConsent (model) {\r\n return request({\r\n url: '/consent/processConsent',\r\n method: 'post',\r\n data: model\r\n });\r\n}\r\n","import request from '@/utils/request';\r\n\r\nexport function getSupportCultures () {\r\n return request({\r\n url: '/app/getSupportCultures',\r\n method: 'post',\r\n data: {}\r\n });\r\n};\r\n\r\nexport function getSiteProfile ({ culture }) {\r\n return request({\r\n url: '/app/getSiteProfile',\r\n method: 'post',\r\n data: {\r\n culture\r\n }\r\n });\r\n};\r\n\r\nexport function getErrorMessage ({ errorId }) {\r\n return request({\r\n url: '/app/getErrorMessage',\r\n method: 'post',\r\n data: {\r\n errorId\r\n }\r\n });\r\n};\r\n","import _ from 'lodash';\r\nimport axios from 'axios';\r\nimport store from '@/store';\r\nimport i18n from '@/i18n';\r\n\r\n// 创建一个 axios 实例\r\nconst service = axios.create({\r\n baseURL: '/api/',\r\n\r\n // 请求超时时间\r\n timeout: 10000,\r\n\r\n // 允许携带cookie\r\n withCredentials: true\r\n});\r\n\r\nservice.interceptors.request.use(\r\n config => {\r\n // 根据当前会话的语言来配置ajax请求的HEADER, 在API服务端会根据参数切换语言\r\n var currentCulture = store.getters['session/currentCulture'];\r\n if (currentCulture) {\r\n config.headers['Content-Language'] = currentCulture;\r\n }\r\n\r\n return config;\r\n },\r\n error => {\r\n Promise.reject(error);\r\n }\r\n);\r\n\r\nservice.interceptors.response.use(\r\n response => {\r\n var contentType = response.headers['content-type'];\r\n\r\n if (_.startsWith(contentType, 'application/json')) {\r\n const dataAxios = response.data;\r\n if (dataAxios && dataAxios.error && dataAxios.errorMessages) {\r\n var message;\r\n for (var p in dataAxios.errorMessages) {\r\n if (!p) {\r\n message = dataAxios.errorMessages[p];\r\n }\r\n }\r\n\r\n if (!message) {\r\n var keys = _.keys(dataAxios.errorMessages);\r\n if (keys.length === 1) {\r\n message = dataAxios.errorMessages[keys[0]];\r\n }\r\n }\r\n\r\n // 注意,这里的message会出现undefined,设置到Error的话 err.message === '', 开发人员可以根据需求显示错误信息\r\n var err = new Error(message || i18n.tc('Common.error'));\r\n err.error = dataAxios.error;\r\n err.errorMessages = dataAxios.errorMessages;\r\n throw err;\r\n } else {\r\n return dataAxios;\r\n }\r\n } else {\r\n return response;\r\n }\r\n },\r\n async error => {\r\n // TODO: 此处需要翻译\r\n if (error && error.response) {\r\n switch (error.response.status) {\r\n case 400:\r\n case 401:\r\n case 403:\r\n case 404:\r\n case 408:\r\n case 500:\r\n case 501:\r\n case 502:\r\n case 503:\r\n case 504:\r\n case 505:\r\n error.message = i18n.tc(`error.${error.response.status}`, { url: error.response.config.url });\r\n break;\r\n default: break;\r\n }\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default service;\r\n","var map = {\n\t\"./app.js\": \"d9cd\",\n\t\"./db.js\": \"0239\",\n\t\"./session.js\": \"3b35\",\n\t\"./views.js\": \"1241\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\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 map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"d307\";","import configs from '@/configs';\r\nimport vuetify from '@/plugins/vuetify';\r\nimport { getSiteProfile, getSupportCultures } from '@/api/app';\r\n\r\n// const { product, time, theme, currencies } = configs\r\nconst { product, theme } = configs;\r\nconst { globalTheme, menuTheme, toolbarTheme, isToolbarDetached, isContentBoxed, isRTL } = theme;\r\n// const { currency, availableCurrencies } = currencies\r\n\r\n// state initial values\r\nconst state = {\r\n product,\r\n\r\n // 支持的语言\r\n supportCultures: null,\r\n\r\n // 最合适的语言\r\n suggestCulture: null,\r\n\r\n promiseGetSiteProfile: {},\r\n\r\n // time,\r\n\r\n // // currency\r\n // currency,\r\n // availableCurrencies,\r\n\r\n // themes and layout configurations\r\n globalTheme,\r\n menuTheme,\r\n toolbarTheme,\r\n isToolbarDetached,\r\n isContentBoxed,\r\n isRTL\r\n\r\n // // App.vue main toast\r\n // toast: {\r\n // show: false,\r\n // color: 'black',\r\n // message: '',\r\n // timeout: 3000\r\n // }\r\n};\r\n\r\nconst getters = {\r\n};\r\n\r\nconst mutations = {\r\n /**\r\n * Theme and Layout\r\n */\r\n setGlobalTheme: (state, theme) => {\r\n vuetify.framework.theme.dark = theme === 'dark';\r\n state.globalTheme = theme;\r\n },\r\n setRTL: (state, isRTL) => {\r\n vuetify.framework.rtl = isRTL;\r\n state.isRTL = isRTL;\r\n },\r\n setContentBoxed: (state, isBoxed) => {\r\n state.isContentBoxed = isBoxed;\r\n },\r\n setMenuTheme: (state, theme) => {\r\n state.menuTheme = theme;\r\n },\r\n setToolbarTheme: (state, theme) => {\r\n state.toolbarTheme = theme;\r\n },\r\n setTimeZone: (state, zone) => {\r\n state.time.zone = zone;\r\n },\r\n setTimeFormat: (state, format) => {\r\n state.time.format = format;\r\n },\r\n setCurrency: (state, currency) => {\r\n state.currency = currency;\r\n },\r\n setToolbarDetached: (state, isDetached) => {\r\n state.isToolbarDetached = isDetached;\r\n }\r\n};\r\n\r\nconst PATH_SUPPORTCULTURES = 'app.supportCultures';\r\nconst PATH_SUGGESTCULTURE = 'app.suggestCulture';\r\n\r\nconst actions = {\r\n\r\n async load ({ dispatch, state }) {\r\n if (!state.supportCultures || !state.suggestCulture) {\r\n var [supportCultures, suggestCulture] = await Promise.all([\r\n dispatch('db/get', { path: PATH_SUPPORTCULTURES }, { root: true }),\r\n dispatch('db/get', { path: PATH_SUGGESTCULTURE }, { root: true })\r\n ]);\r\n\r\n if (!supportCultures || !suggestCulture) {\r\n var r = await getSupportCultures();\r\n supportCultures = r.supportCultures;\r\n suggestCulture = r.suggestCulture;\r\n }\r\n\r\n await dispatch('setSupportCultures', supportCultures);\r\n await dispatch('setSuggestCulture', suggestCulture);\r\n }\r\n },\r\n\r\n /**\r\n * 设置支持的语言\r\n */\r\n async setSupportCultures ({ dispatch, state }, value) {\r\n await dispatch('db/set', { path: PATH_SUPPORTCULTURES, value }, { root: true });\r\n vuetify.framework.locales = state.supportCultures;\r\n state.supportCultures = value;\r\n },\r\n\r\n /**\r\n * 设置客户端建议的语言\r\n */\r\n async setSuggestCulture ({ dispatch, state }, value) {\r\n await dispatch('db/set', { path: PATH_SUGGESTCULTURE, value }, { root: true });\r\n state.suggestCulture = value;\r\n },\r\n\r\n /**\r\n * @description 获取当前站点概要信息\r\n * @param {Object} dispatch vuex dispatch\r\n * @param {String} culture 指定语言\r\n */\r\n getSiteProfile ({ dispatch, state, rootGetters }, { culture } = {}) {\r\n var sessionCulture = rootGetters['session/currentCulture'];\r\n culture = culture || sessionCulture || '';\r\n\r\n if (!state.promiseGetSiteProfile[culture]) {\r\n state.promiseGetSiteProfile[culture] = new Promise(async (resolve) => {\r\n var path = `app.siteProfile.${culture}`;\r\n var siteProfile = await dispatch('db/get', { path }, { root: true });\r\n if (!siteProfile) {\r\n siteProfile = await getSiteProfile({ culture });\r\n await dispatch('db/set', { path, value: siteProfile }, { root: true });\r\n }\r\n resolve(siteProfile);\r\n });\r\n }\r\n return state.promiseGetSiteProfile[culture];\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import _ from 'lodash';\r\n\r\nexport default {\r\n getQueryString ($route, name) {\r\n var temp = name.toLowerCase();\r\n return _.find($route.query, (val, key) => key.toLowerCase(key) === temp);\r\n },\r\n\r\n generateUrl (url, querys) {\r\n var queryStrings = [];\r\n for (var k in querys) {\r\n var v = querys[k];\r\n if (v) {\r\n queryStrings.push(`${encodeURIComponent(k)}=${encodeURIComponent(querys[k])}`);\r\n }\r\n }\r\n if (queryStrings.length > 0) {\r\n return `${url}?${queryStrings.join('&')}`;\r\n } else {\r\n return url;\r\n }\r\n }\r\n};\r\n","export default {\r\n /**\r\n * 判断字符串是否是电子邮箱格式,该正则表达式是从FluentValidation提取\r\n * @param {String} str 要验证的字符串\r\n */\r\n isEmail (str) {\r\n /* eslint-disable */\r\n return /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-||_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+([a-z]+|\\d|-|\\.{0,1}|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])?([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/.test(str);\r\n /* eslint-enable */\r\n }\r\n};\r\n","import i18n from '@/i18n';\r\n\r\nexport default {\r\n /**\r\n * 用户取消了操作\r\n */\r\n userCancelled () {\r\n var message = i18n.tc('error.1');\r\n var err = new Error(message);\r\n err.error = 1;\r\n return err;\r\n },\r\n\r\n /**\r\n * 记录找不到\r\n */\r\n noContent () {\r\n var message = i18n.tc('error.204');\r\n var err = new Error(message);\r\n err.error = 204;\r\n return err;\r\n }\r\n}\r\n","export default {\r\n /**\r\n * 格式化字符串\r\n * @param {String} format 格式化,例如 'Hello world,{Name}'\r\n * @param {Object} args 参数, 例如 { Name: 'stcore' }\r\n */\r\n format (format, args) {\r\n var str = format;\r\n\r\n for (var key in args) {\r\n str = str.replace(new RegExp('\\\\{' + key + '\\\\}', 'g'), args[key]);\r\n }\r\n return str;\r\n }\r\n};\r\n","import request from './request';\r\nimport route from './route';\r\nimport validate from './validate';\r\nimport error from './error';\r\nimport string from './string';\r\n\r\nexport default {\r\n request,\r\n route,\r\n validate,\r\n error,\r\n string\r\n};\r\n","export default {\r\n // global theme for the app\r\n globalTheme: 'light', // light | dark\r\n\r\n // side menu theme, use global theme or custom\r\n menuTheme: 'global', // global | light | dark\r\n\r\n // toolbar theme, use global theme or custom\r\n toolbarTheme: 'global', // global | light | dark\r\n\r\n // show toolbar detached from top\r\n isToolbarDetached: false,\r\n\r\n // wrap pages content with a max-width\r\n isContentBoxed: false,\r\n\r\n // application is right to left\r\n isRTL: false,\r\n\r\n // dark theme colors\r\n dark: {\r\n background: '#05090c',\r\n surface: '#111b27',\r\n primary: '#0096c7',\r\n secondary: '#829099',\r\n accent: '#82B1FF',\r\n error: '#FF5252',\r\n info: '#2196F3',\r\n success: '#4CAF50',\r\n warning: '#FFC107'\r\n },\r\n\r\n // light theme colors\r\n light: {\r\n background: '#ffffff',\r\n surface: '#f2f5f8',\r\n primary: '#0096c7',\r\n secondary: '#a0b9c8',\r\n accent: '#048ba8',\r\n error: '#ef476f',\r\n info: '#2196F3',\r\n success: '#06d6a0',\r\n warning: '#ffd166'\r\n }\r\n};\r\n","export default [\r\n {\r\n key: 'menu.account',\r\n items: [\r\n {\r\n icon: 'mdi-account',\r\n key: 'menu.profile',\r\n link: '/account/profile'\r\n },\r\n {\r\n icon: 'mdi-key-change',\r\n key: 'menu.changePassword',\r\n link: '/account/change-password'\r\n },\r\n {\r\n icon: 'mdi-key-link',\r\n key: 'menu.grants',\r\n link: '/grants'\r\n },\r\n {\r\n icon: 'mdi-logout',\r\n key: 'menu.logout',\r\n link: '/passport/logout'\r\n }\r\n ]\r\n }\r\n];\r\n","import menu from './menu';\r\n\r\nexport default {\r\n menu,\r\n\r\n footer: [{\r\n text: 'Docs',\r\n key: 'menu.docs',\r\n href: 'https://vuetifyjs.com',\r\n target: '_blank'\r\n }]\r\n};\r\n","// import maps from './maps'\r\n// import time from './time'\r\n// import icons from './icons'\r\nimport theme from './theme';\r\n// import toolbar from './toolbar'\r\n// import locales from './locales'\r\n// import analytics from './analytics'\r\n// import currencies from './currencies'\r\nimport navigation from './navigation';\r\n\r\nexport default {\r\n /**\r\n * 产品信息\r\n */\r\n product: {\r\n name: '科迩',\r\n version: '1.0.0'\r\n },\r\n\r\n // // google maps\r\n // maps,\r\n\r\n // // time configs\r\n // time,\r\n\r\n // // icon libraries\r\n // icons,\r\n\r\n // 样式配置\r\n theme,\r\n\r\n // // toolbar configs\r\n // toolbar,\r\n\r\n // // locales configs\r\n // locales,\r\n\r\n // // analytics configs\r\n // analytics,\r\n\r\n // // currencies configs\r\n // currencies,\r\n\r\n // 导航菜单\r\n navigation\r\n};\r\n"],"sourceRoot":""}