{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/folder/FolderListView.vue?4ed0","webpack:///./src/components/Home.vue?f7bf","webpack:///./src/components/ErrorView.vue?4cbc","webpack:///./src/components/system/Separator.vue?2d88","webpack:///./src/components/file/FileListView.vue?ca52","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/authentication/FolderAuthenticationView.vue?8871","webpack:///./src/components/history/FolderHistoryView.vue?a032","webpack:///./src/components/folder/FolderTableSelector.vue?47a6","webpack:///./src/components/App.vue?5739","webpack:///./src/components/App.vue?139e","webpack:///./src/components/App.vue?d3c5","webpack:///./src/components/App.vue?2c58","webpack:///./src/components/App.vue","webpack:///./src/components/authentication/LoginView.vue?acb7","webpack:///./src/domain/user/User.ts","webpack:///./src/store/SessionStorageAccessor.ts","webpack:///./src/store/State.ts","webpack:///./src/store/index.ts","webpack:///./src/utilities/logger/ConsoleLogger.ts","webpack:///./src/utilities/logger/LoggerFactory.ts","webpack:///./src/infrastructure/configuration/ConfigurationService.ts","webpack:///./src/infrastructure/configuration/ConfigurationRepository.ts","webpack:///./src/infrastructure/configuration/ConfigurationRegistry.ts","webpack:///./src/infrastructure/authentication/AuthenticationService.ts","webpack:///./src/infrastructure/authentication/AuthenticationRegistry.ts","webpack:///./src/utilities/AsyncUtility.ts","webpack:///./src/utilities/FileSizeConverter.ts","webpack:///./src/utilities/HttpClient.ts","webpack:///./src/utilities/TimeMeasure.ts","webpack:///./src/infrastructure/AuthenticatedHttpClient.ts","webpack:///./src/infrastructure/HttpRepository.ts","webpack:///./src/infrastructure/AuthenticatedRepository.ts","webpack:///./src/domain/authentication/Authenticate.ts","webpack:///./src/infrastructure/user/translators/UserTranslator.ts","webpack:///./src/infrastructure/authentication/AuthenticationRepository.ts","webpack:///./src/domain/folder/Folder.ts","webpack:///./src/domain/folder/FolderDispInfo.ts","webpack:///./src/infrastructure/utilities/DateTimeConverter.ts","webpack:///./src/infrastructure/utilities/PasswordCreator.ts","webpack:///./src/infrastructure/folder/translators/FolderTranslator.ts","webpack:///./src/infrastructure/folder/translators/ShareDateTranslator.ts","webpack:///./src/infrastructure/folder/FolderRepository.ts","webpack:///./src/infrastructure/folder/FolderService.ts","webpack:///./src/infrastructure/folder/FolderRegistry.ts","webpack:///./src/infrastructure/file/FileRegistry.ts","webpack:///./src/domain/file/FileHeader.ts","webpack:///./src/infrastructure/file/translators/FileTranslators.ts","webpack:///./src/infrastructure/file/FileRepository.ts","webpack:///./src/infrastructure/file/DownloadSource.ts","webpack:///./src/domain/history/FolderHistory.ts","webpack:///./src/domain/history/DownloadHistory.ts","webpack:///./src/infrastructure/history/translators/HistoryTranslator.ts","webpack:///./src/infrastructure/history/HistoryRepository.ts","webpack:///./src/infrastructure/history/HistoryRegistry.ts","webpack:///./src/domain/DomainRegistry.ts","webpack:///./src/components/authentication/LoginView.vue?e754","webpack:///./src/components/authentication/LoginView.vue?b30c","webpack:///./src/components/authentication/LoginView.vue","webpack:///./src/components/Home.vue?ef24","webpack:///./src/components/folder/FolderListView.vue?26e0","webpack:///./src/components/folder/FolderTableSelector.vue?20a9","webpack:///./src/components/folder/FolderTableSelector.vue?5450","webpack:///./src/components/folder/FolderTableSelector.vue?e574","webpack:///./src/components/folder/FolderTableSelector.vue","webpack:///./src/components/folder/FolderEditDialog.vue?5dbe","webpack:///./src/components/folder/FolderEditDialog.vue?0806","webpack:///./src/components/folder/FolderEditDialog.vue?35bf","webpack:///./src/components/folder/FolderEditDialog.vue","webpack:///./src/components/file/FileListView.vue?c8d8","webpack:///./src/components/file/FileUploadDialog.vue?af07","webpack:///./src/components/file/FileUploadDialog.vue?5923","webpack:///./src/components/file/FileUploadDialog.vue?af38","webpack:///./src/components/file/FileUploadDialog.vue","webpack:///./src/components/file/FileTableSelector.vue?811d","webpack:///./src/components/file/FileTableSelector.vue?f6db","webpack:///./src/components/file/FileTableSelector.vue?c267","webpack:///./src/components/file/FileTableSelector.vue","webpack:///./src/components/file/mixins/FileListMixin.vue?8049","webpack:///./src/components/file/mixins/FileListMixin.vue","webpack:///./src/components/file/mixins/FileListMixin.vue?e665","webpack:///./src/components/file/FileListView.vue?5ac0","webpack:///./src/components/file/FileListView.vue?76b5","webpack:///./src/components/file/FileListView.vue","webpack:///./src/components/system/Separator.vue?5a50","webpack:///./src/components/system/Separator.vue?867d","webpack:///./src/components/system/Separator.vue?1fd2","webpack:///./src/components/system/Separator.vue","webpack:///./src/components/folder/mixins/FolderListMixin.vue?af65","webpack:///./src/components/folder/mixins/FolderListMixin.vue","webpack:///./src/components/folder/mixins/FolderListMixin.vue?2fc7","webpack:///./src/components/folder/FolderListView.vue?144d","webpack:///./src/components/folder/FolderListView.vue?1e5f","webpack:///./src/components/folder/FolderListView.vue","webpack:///./src/components/history/DownloadHistoryView.vue?f969","webpack:///./src/components/history/DownloadFileHistoryView.vue?8de2","webpack:///./src/components/history/DownloadFileHistoryView.vue?cba0","webpack:///./src/components/history/DownloadFileHistoryView.vue?4776","webpack:///./src/components/history/DownloadFileHistoryView.vue","webpack:///./src/components/history/DownloadHistoryView.vue?baab","webpack:///./src/components/history/DownloadHistoryView.vue?079f","webpack:///./src/components/history/DownloadHistoryView.vue","webpack:///./src/components/history/FolderHistoryView.vue?7d6f","webpack:///./src/components/history/FolderHistoryTableView.vue?7a93","webpack:///./src/components/history/FolderHistoryTableView.vue?d228","webpack:///./src/components/history/FolderHistoryTableView.vue?c3e1","webpack:///./src/components/history/FolderHistoryTableView.vue","webpack:///./src/components/history/FolderHistoryView.vue?3fde","webpack:///./src/components/history/FolderHistoryView.vue?5c90","webpack:///./src/components/history/FolderHistoryView.vue","webpack:///./src/components/Home.vue?3513","webpack:///./src/components/Home.vue?d9f2","webpack:///./src/components/Home.vue","webpack:///./src/components/authentication/FolderAuthenticationView.vue?21f5","webpack:///./src/components/authentication/FolderAuthenticationView.vue?b115","webpack:///./src/components/authentication/FolderAuthenticationView.vue?8b5f","webpack:///./src/components/authentication/FolderAuthenticationView.vue","webpack:///./src/components/ErrorView.vue?ae08","webpack:///./src/components/ErrorView.vue?d5bb","webpack:///./src/components/ErrorView.vue?8618","webpack:///./src/components/ErrorView.vue","webpack:///./src/router/index.ts","webpack:///./src/components/system/NotImplementedComponent.vue?e387","webpack:///./src/components/system/NotImplementedComponent.vue?3a57","webpack:///./src/components/system/NotImplementedComponent.vue?89c9","webpack:///./src/components/system/NotImplementedComponent.vue","webpack:///./src/components/system/utilities/WindowOpener.ts","webpack:///./src/main.ts","webpack:///./src/components/folder/FolderEditDialog.vue?e0f4","webpack:///./src/components/authentication/LoginView.vue?4da4","webpack:///./src/components/file/FileUploadDialog.vue?f43c","webpack:///./src/components/history/DownloadHistoryView.vue?23ab"],"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","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","staticRenderFns","component","directives","rawName","expression","_v","domProps","on","$event","type","indexOf","_k","keyCode","focusToPassword","arguments","target","composing","ref","authenticate","password","text","sessionStorage","getItem","_configurationKey","JSON","parse","setItem","stringify","removeItem","_tokenKey","getUser","_userKey","setUser","_folderGuidKey","obj","use","LogLevel","store","Store","state","getters","configuration","token","user","folderGuid","mutations","setConfiguration","set","setToken","setFolderGuid","actions","context","commit","messages","ConsoleLogger","putLog","TRACE","console","trace","DEBUG","debug","INFO","info","WARN","warn","ERROR","error","FATAL","_logLevel","ALL","level","OFF","log","prefix","createPrefix","message","date","Date","fill","getHours","getMinutes","getSeconds","getMilliseconds","toLevelText","toString","substr","initialize","_repository","logger","getLogger","loadConfiguration","getConfiguration","a","getAuthentication","updateStore","clearStore","discardAuthentication","source","getToken","_service","ms","Promise","setTimeout","isCompleted","pollingIntervalAsMsec","AsyncUtility","sleep","size","toDecimal","strDecimal","format","dec","parseFloat","fmt","isNaN","fmtsp","decsp","split","Array","len","search","newfm","ret","substring","_logger","off","url","config","logAsync","params","HttpClient","paramsToString","post","join","procedure","description","TimeMeasure","started","getTimeStamp","finished","getTime","_defaultLogger","_getToken","_client","toAuthorizedConfig","headers","Authorization","undefined","bean","request","createAuthenticateRequestBean","toAuthenticate","userId","toUser","Folder","comment","guid","maxSize","createDateTime","expirationDateTime","published","forceCompressionCount","dateTimeFormat","parsed","toDate","passwordBase","passwordNumeric","passwordUppercase","passwordLowercase","passwordSymbol","charAt","Math","floor","random","DATE_FORMAT","TIME_FORMAT","DATETIME_FORMAT","DATE_DISP_FORMAT","TIME_DISP_FORMAT","DATETIME_DISP_FORMAT","TIMESTAMP_FORMAT","fromDate","dateStr","days","add","from","to","fromM","toM","diff","toFolderDispInfo","toFolders","beans","b","toFolder","folder","toFolderBean","reCaptchaResponse","client","errorCode","createUserCode","toFileHeaders","toFileHeader","fileId","fileName","file","formData","FormData","append","_folderGuid","_fileId","folderId","updateDateTime","isDeleted","dateTime","userName","ipAddress","toFolderHistories","toFolderHistory","toDownloadHistories","toDownloadHistory","authentication","history","DomainRegistry","instance","isAuthenticating","service","getAuthenticationService","login","then","handleAuthenticationSucceeded","catch","handleAuthenticationFailed","destination","queryParameterToFirstString","$route","query","redirect","$router","replace","isArray","title","$warn","$refs","focus","componentKey","_s","logout","tag","style","width","selectorWidth","addFolder","selectedFolder","editFolder","deleteSelectedFolder","isDialogEdit","editConfirm","model","callback","$$v","isDialogVisible","folders","selectionChanged","selectedGuid","filesChanged","scopedSlots","_u","fn","scope","class","toFolderStatusClass","row","toDateTimeString","toDateString","toDisplaySize","sortFolderStatus","toFolderStatus","dateTranslator","toDateTimeDispString","toDateDispString","visible","onCreatePassword","_i","$$a","$$el","$$c","checked","$$i","concat","slot","onCancel","confirmEnabled","onConfirm","isEdit","editSource","clone","confirm","getPassword","newValue","oldValue","input","downloadWarningMessage","addFile","deleteEnable","deleteSelectedFile","downloadEnable","downLoadFile","files","downloadBatchFiles","_l","uploadConfirm","stopPropagation","preventDefault","addFiles","dataTransfer","openDialog","selectedFiles","deleteSelectedFiles","tableData","toFileSize","isUploading","errorDate","click","filter","v","some","sv","getLatestFolderInfo","latestFolder","isOverUploadFileSize","$error","uploadFile","uploadFileSize","select","f","sum","upload","repository","getFileRepository","uploaded","getFolderRepository","getFolder","toUploadUserName","userCode","isLoading","displaySetting","getDisplaySetting","getFolderDispInfo","getFileHeaders","deleteFile","downloadFile","location","href","updateFileList","$store","all","getFileList","downLoadFiles","childNodes","downloadFiles","$confirm","confirmButtonText","cancelButtonText","components","FileUploadDialog","FileTableSelector","onMouseDown","onMouseMove","trackingSource","isTracking","widthAsString","lengthAsString","isVertical","height","cursor","tracker","clientHeight","clientWidth","getTrackingOffset","buttons","max","min","getClientLength","pageY","pageX","default","getFolders","createFolder","updateFolder","deleteFolder","refresh","setDefaultSelectorWidth","getFolderList","orderByDescending","toArray","getFolderInfo","find","innerWidth","FolderTableSelector","FolderEditDialog","Separator","FileListView","histories","getHistoryRepository","getDownloadHistories","getDownloadFileHistories","h","DownloadFileHistoryView","getFolderHistories","FolderHistoryTableView","FolderListView","DownloadHistoryView","FolderHistoryView","recaptchaKey","onRecaptchaVerified","onRecaptchaExpired","isRecaptchaVerified","recaptchaResponse","$configuration","reCaptcha","siteKey","getFolderService","errorMessage","toErrorMessage","$success","$el","response","recaptcha","reset","VueRecaptcha","routes","path","props","meta","requiresAuth","requiresFolderAuth","router","base","detail","overview","parameters","WindowOpener","toUrl","openWindow","open","toParametersAsString","expressions","toParameterExpressions","results","isAlreadyLogined","isAlreadyFolderLogined","createRedirectQuery","redirectUrl","fullPath","initializeApplication","getConfigurationService","load","beforeEach","next","matched","record","getFolderAuthenticationInfo","productionTip","$openWindow","$wait","wait","$sleep","onClose","$notify","success","position","duration","$successAsHTML","dangerouslyUseHTMLString","$info","reason","$fatal","$notImplemented","$logger","$findAncestor","predicate","ancestor","$parent","$doWhenValid","process","instances","render","$mount"],"mappings":"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","file":"js/app.fc3a075d.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 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// 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\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 \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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderListView.vue?vue&type=style&index=0&id=46adaf77&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.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!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=45d6bf8a&scoped=true&lang=scss&\"","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!./ErrorView.vue?vue&type=style&index=0&id=34ae7955&scoped=true&lang=css&\"","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!./Separator.vue?vue&type=style&index=0&id=187ac649&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListView.vue?vue&type=style&index=0&id=379616ef&scoped=true&lang=scss&\"","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\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 = \"4678\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderAuthenticationView.vue?vue&type=style&index=0&id=5fe99924&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderHistoryView.vue?vue&type=style&index=0&id=1e5094fa&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderTableSelector.vue?vue&type=style&index=0&id=6a6f1300&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.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!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-root\"},[_c('div',{staticClass:\"app-section\"},[_c('router-view',{attrs:{\"propsMessage\":\"vue-router\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class App extends Mixins() {\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!../../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=ts&\"; 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!../../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=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7e4ef336&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isAuthenticating),expression:\"isAuthenticating\"}],staticClass:\"login-view-root\"},[_c('div',{staticClass:\"login-view-content\"},[_c('div',{staticClass:\"login-view-organization-logo\"}),_c('div',{staticClass:\"login-view-title-logo\"}),_c('div',{staticClass:\"login-view-title\"},[_vm._v(\"共通基盤システム\")]),_c('div',{staticClass:\"login-view-title\"},[_vm._v(\"ファイル送受信サービス\")]),_c('div',{staticClass:\"login-view-input\"},[_c('label',[_c('span',[_vm._v(\"共通ID\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.id),expression:\"id\"}],attrs:{\"type\":\"tel\",\"autofocus\":\"\"},domProps:{\"value\":(_vm.id)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.focusToPassword.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.id=$event.target.value}}})])]),_c('div',{staticClass:\"login-view-input\"},[_c('label',[_c('span',[_vm._v(\"パスワード\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],ref:\"password\",attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.password)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.authenticate.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}})])]),_c('div',{staticClass:\"login-view-button\"},[_c('button',{on:{\"click\":_vm.authenticate}},[_vm._v(\"ログオン\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class User {\r\n constructor(public id: string, public name: string) {\r\n }\r\n}\r\n","import { IConfiguration } from \"../domain/configuration\";\r\nimport { User } from \"../domain/user\";\r\n\r\nexport class SessionStorageAccessor {\r\n private static _configurationKey = \"configurationKey\";\r\n private static _tokenKey = \"tokenKey\";\r\n private static _userKey = \"userKey\";\r\n private static _folderGuidKey = \"folderGuidKey\";\r\n\r\n static get configuration(): IConfiguration {\r\n const text = sessionStorage.getItem(this._configurationKey);\r\n if (!text) { return null; }\r\n return JSON.parse(text);\r\n }\r\n\r\n static set configuration(value: IConfiguration) {\r\n if (!value) {\r\n sessionStorage.removeItem(this._configurationKey);\r\n return;\r\n }\r\n sessionStorage.setItem(this._configurationKey, JSON.stringify(value));\r\n }\r\n\r\n static get token(): string {\r\n return sessionStorage.getItem(this._tokenKey);\r\n }\r\n\r\n static set token(value: string) {\r\n if (!value) {\r\n sessionStorage.removeItem(this._tokenKey);\r\n return;\r\n }\r\n sessionStorage.setItem(this._tokenKey, value);\r\n }\r\n\r\n static get user(): User {\r\n return this.getUser(this._userKey);\r\n }\r\n\r\n static set user(value: User) {\r\n this.setUser(this._userKey, value);\r\n }\r\n\r\n static get folderGuid(): string {\r\n return sessionStorage.getItem(this._folderGuidKey);\r\n }\r\n\r\n static set folderGuid(value: string) {\r\n if (!value) {\r\n sessionStorage.removeItem(this._folderGuidKey);\r\n return;\r\n }\r\n sessionStorage.setItem(this._folderGuidKey, value);\r\n }\r\n\r\n private static getUser(key: string): User {\r\n const text = sessionStorage.getItem(key);\r\n if (!text) { return null; }\r\n const obj = JSON.parse(text);\r\n return new User(obj.id, obj.name);\r\n }\r\n\r\n private static setUser(key: string, value: User): void {\r\n if (!value) {\r\n sessionStorage.removeItem(key);\r\n return;\r\n }\r\n const text = JSON.stringify({\r\n id: value.id,\r\n name: value.name,\r\n });\r\n sessionStorage.setItem(key, text);\r\n }\r\n}\r\n","import { IConfiguration } from \"../domain/configuration\";\r\nimport { User } from \"../domain/user\";\r\n\r\nexport class State {\r\n public token: string;\r\n public user: User;\r\n public folderGuid: string;\r\n public configuration: IConfiguration;\r\n}\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport { SessionStorageAccessor } from \"./SessionStorageAccessor\";\r\nimport { State } from \"./State\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n state: new State(),\r\n getters: {\r\n configuration: state => state.configuration,\r\n token: state => state.token,\r\n user: state => state.user,\r\n folderGuid: state => state.folderGuid,\r\n },\r\n mutations: {\r\n setConfiguration(state, configuration) {\r\n // stateに直接入れると何故かgetterによる更新がされない\r\n Vue.set(state, \"configuration\", configuration);\r\n SessionStorageAccessor.configuration = configuration;\r\n },\r\n setToken(state, token) {\r\n // stateに直接入れると何故かgetterによる更新がされない\r\n Vue.set(state, \"token\", token);\r\n SessionStorageAccessor.token = token;\r\n },\r\n setUser(state, user) {\r\n // stateに直接入れると何故かgetterによる更新がされない\r\n Vue.set(state, \"user\", user);\r\n SessionStorageAccessor.user = user;\r\n },\r\n setFolderGuid(state, folderGuid) {\r\n // stateに直接入れると何故かgetterによる更新がされない\r\n Vue.set(state, \"folderGuid\", folderGuid);\r\n SessionStorageAccessor.folderGuid = folderGuid;\r\n },\r\n},\r\n actions: {\r\n setConfiguration(context, configuration) {\r\n context.commit(\"setConfiguration\", configuration);\r\n },\r\n setToken(context, token) {\r\n context.commit(\"setToken\", token);\r\n },\r\n setUser(context, user) {\r\n context.commit(\"setUser\", user);\r\n },\r\n setFolderGuid(context, folderGuid) {\r\n context.commit(\"setFolderGuid\", folderGuid);\r\n },\r\n},\r\n modules: {\r\n }\r\n});\r\n\r\nexport default store;\r\n","import { ILogger } from \"./ILogger\";\r\n\r\nenum LogLevel {\r\n OFF = 0,\r\n FATAL = 1,\r\n ERROR = 2,\r\n WARN = 3,\r\n INFO = 4,\r\n DEBUG = 5,\r\n TRACE = 6,\r\n ALL = 7,\r\n}\r\n\r\nexport class ConsoleLogger implements ILogger {\r\n private static _logLevel: LogLevel;\r\n \r\n static initialize(): void {\r\n // TODO: configure\r\n this._logLevel = LogLevel.ALL;\r\n }\r\n/* \r\n private static toLevel(source: string): LogLevel {\r\n switch (source.toUpperCase()) {\r\n case \"ALL\": return LogLevel.ALL;\r\n case \"TRACE\": return LogLevel.TRACE;\r\n case \"DEBUG\": return LogLevel.DEBUG;\r\n case \"INFO\": return LogLevel.INFO;\r\n case \"WARN\": return LogLevel.WARN;\r\n case \"ERROR\": return LogLevel.ERROR;\r\n case \"FATAL\": return LogLevel.FATAL;\r\n case \"OFF\": return LogLevel.OFF;\r\n default: return LogLevel.INFO;\r\n }\r\n }\r\n*/\r\n private static toLevelText(level: LogLevel): string {\r\n switch (level) {\r\n case LogLevel.ALL: return \"ALL\";\r\n case LogLevel.TRACE: return \"TRACE\";\r\n case LogLevel.DEBUG: return \"DEBUG\";\r\n case LogLevel.INFO: return \"INFO\";\r\n case LogLevel.WARN: return \"WARN\";\r\n case LogLevel.ERROR: return \"ERROR\";\r\n case LogLevel.FATAL: return \"FATAL\";\r\n case LogLevel.OFF: return \"OFF\";\r\n default: return \"UNKNOWN\";\r\n }\r\n }\r\n \r\n trace(...messages: any[]): void {\r\n ConsoleLogger.putLog(LogLevel.TRACE, messages, console.trace);\r\n }\r\n\r\n debug(...messages: any[]): void {\r\n ConsoleLogger.putLog(LogLevel.DEBUG, messages, console.debug);\r\n }\r\n\r\n info(...messages: any[]): void {\r\n ConsoleLogger.putLog(LogLevel.INFO, messages, console.info);\r\n }\r\n\r\n warn(...messages: any[]): void {\r\n ConsoleLogger.putLog(LogLevel.WARN, messages, console.warn);\r\n }\r\n\r\n error(...messages: any[]): void {\r\n ConsoleLogger.putLog(LogLevel.ERROR, messages, console.error);\r\n }\r\n\r\n fatal(...messages: any[]): void {\r\n ConsoleLogger.putLog(LogLevel.FATAL, messages, console.error);\r\n }\r\n\r\n private static putLog(level: LogLevel, messages: any[], log: (message: any) => void): void {\r\n try {\r\n if (ConsoleLogger._logLevel < level) { return; }\r\n const prefix = ConsoleLogger.createPrefix(level);\r\n if (messages && messages.length) {\r\n for (const message of messages) {\r\n log(prefix + message);\r\n }\r\n } else {\r\n log(prefix + messages);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private static createPrefix(level: LogLevel): string {\r\n const date = new Date();\r\n return this.fill(date.getHours(), 2) + \":\" +\r\n this.fill(date.getMinutes(), 2) + \":\" +\r\n this.fill(date.getSeconds(), 2) + \".\" +\r\n this.fill(date.getMilliseconds(), 3) + \":[\" + ConsoleLogger.toLevelText(level) + \"] \";\r\n }\r\n\r\n /**\r\n * 先頭の0埋め。3桁までしか対応していません\r\n */\r\n private static fill(value: number, length: number): string {\r\n const text = value.toString();\r\n if (text.length >= length) { return text; }\r\n return (\"000\" + text).substr(0, length);\r\n }\r\n}\r\n","import { ILogger } from \".\";\r\nimport { ConsoleLogger } from \"./ConsoleLogger\";\r\n\r\nexport class LoggerFactory {\r\n static getLogger(): ILogger {\r\n return new ConsoleLogger();\r\n }\r\n\r\n static initialize(): void {\r\n ConsoleLogger.initialize();\r\n }\r\n}\r\n","import {\r\n IConfiguration,\r\n IConfigurationService,\r\n} from \"../../domain/configuration\";\r\nimport store from \"../../store\";\r\nimport { SessionStorageAccessor } from \"../../store/SessionStorageAccessor\";\r\nimport { ConfigurationRepository } from \"./ConfigurationRepository\";\r\nimport { LoggerFactory } from \"../../utilities/logger\";\r\n\r\nexport class ConfigurationService implements IConfigurationService {\r\n constructor(private readonly _repository: ConfigurationRepository) {\r\n }\r\n\r\n private readonly logger = LoggerFactory.getLogger();\r\n\r\n async load(): Promise {\r\n store.commit(\"setConfiguration\", await this.loadConfiguration());\r\n }\r\n\r\n getConfiguration(): IConfiguration {\r\n return store.getters.configuration as IConfiguration;\r\n }\r\n\r\n private async loadConfiguration(): Promise {\r\n if (store.getters.configuration) {\r\n this.logger.info(\"既にstoreに格納されてる設定を利用します.\");\r\n return store.getters.configuration;\r\n } else if (SessionStorageAccessor.configuration) {\r\n this.logger.info(\"セッションストレージに格納されてる設定を利用します.\");\r\n return SessionStorageAccessor.configuration as IConfiguration;\r\n } else {\r\n this.logger.info(\"バックエンドから設定を取得します.\");\r\n return this._repository.getConfiguration();\r\n }\r\n }\r\n}\r\n","import { default as axios } from \"axios\";\r\nimport { IConfiguration } from \"../../domain/configuration\";\r\n\r\nexport class ConfigurationRepository {\r\n public async getConfiguration(): Promise {\r\n return (await axios.get(\"/api/configuration/frontend/get\")).data;\r\n }\r\n}\r\n","import { IConfigurationRegistry, IConfigurationService } from \"../../domain/configuration\";\r\nimport { ConfigurationService } from \"./ConfigurationService\";\r\nimport { ConfigurationRepository } from \"./ConfigurationRepository\";\r\n\r\nexport class ConfigurationRegistry implements IConfigurationRegistry {\r\n getConfigurationService(): IConfigurationService {\r\n return new ConfigurationService(this._repository);\r\n }\r\n\r\n private readonly _repository: ConfigurationRepository = new ConfigurationRepository();\r\n}\r\n","import store from \"../../store\";\r\nimport { AuthenticationRepository } from \".\";\r\nimport { Authenticate, IAuthenticationService } from \"../../domain/authentication\";\r\n\r\nexport class AuthenticationService implements IAuthenticationService {\r\n constructor(private readonly _repository: AuthenticationRepository) {\r\n }\r\n\r\n async login(id: string, password: string): Promise {\r\n try {\r\n const result = await this._repository.getAuthentication(id, password);\r\n this.updateStore(result);\r\n } catch (e) {\r\n this.clearStore();\r\n throw e;\r\n }\r\n }\r\n\r\n async logout(): Promise {\r\n try {\r\n await this._repository.discardAuthentication();\r\n this.clearStore();\r\n } catch (e) {\r\n this.clearStore();\r\n throw e;\r\n }\r\n }\r\n\r\n private updateStore(source: Authenticate): void {\r\n store.commit(\"setToken\", source.token);\r\n console.debug(store.getters.token);\r\n store.commit(\"setUser\", source.user);\r\n console.debug(store.getters.user);\r\n store.commit(\"setFolderGuid\", \"\");\r\n console.debug(store.getters.folderGuid);\r\n }\r\n\r\n private clearStore(): void {\r\n store.commit(\"setToken\", null);\r\n }\r\n}\r\n","import { IAuthenticationRegistry, IAuthenticationService } from \"../../domain/authentication\";\r\nimport { AuthenticationService, AuthenticationRepository } from \".\";\r\n\r\nexport class AuthenticationRegistry implements IAuthenticationRegistry {\r\n constructor(getToken: () => string) {\r\n this._service = new AuthenticationService(new AuthenticationRepository(getToken));\r\n }\r\n\r\n private readonly _service: IAuthenticationService;\r\n\r\n getAuthenticationService(): IAuthenticationService {\r\n return this._service;\r\n }\r\n}\r\n","export class AsyncUtility {\r\n static async sleep(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n static async wait(isCompleted: () => boolean, pollingIntervalAsMsec: number = 100) {\r\n while (!isCompleted()) {\r\n await AsyncUtility.sleep(pollingIntervalAsMsec);\r\n }\r\n }\r\n}\r\n","export class FileSizeConverter {\r\n static toString(size: number): string {\r\n if (size < 1024000) {\r\n return this.toDecimal((size / 1024).toString(), \"0.00\") + \" KB\";\r\n } else if (size < 1048576000) {\r\n return this.toDecimal((size / 1048576).toString(), \"0.00\") + \" MB\";\r\n } else {\r\n return this.toDecimal((size / 1073741824).toString(), \"0.00\") + \" GB\";\r\n }\r\n }\r\n\r\n private static toDecimal(strDecimal: string, format: string): string {\r\n const dec = parseFloat(strDecimal);\r\n const fmt = parseFloat(format);\r\n if (isNaN(dec) || (format !== \"\" && isNaN(fmt))) {\r\n return strDecimal;\r\n }\r\n const decsp = strDecimal.split(\".\");\r\n let fmtsp;\r\n if (format !== \"\") {\r\n fmtsp = format.split(\".\");\r\n } else {\r\n fmtsp = new Array();\r\n fmtsp.push(\"0\");\r\n if ((decsp[0] === \"0\" || decsp[0] === \"-0\") && decsp.length === 2) {\r\n const len = decsp[1].search(/[^0]/);\r\n if (len >= 0) {\r\n let newfm = \"\";\r\n for (let i = 0; i <= len; i++) {\r\n newfm += \"0\";\r\n }\r\n fmtsp.push(newfm);\r\n }\r\n }\r\n }\r\n let ret = \"\";\r\n if (decsp[0].length < fmtsp[0].length) {\r\n ret += fmtsp[0].substring(0, fmtsp[0].length - decsp[0].length);\r\n }\r\n ret += decsp[0];\r\n if (decsp.length === 2 && fmtsp.length === 2) {\r\n ret += \".\";\r\n if (decsp[1].length < fmtsp[1].length) {\r\n ret += decsp[1] + fmtsp[1].substring(fmtsp[1].length - decsp[1].length - 1);\r\n } else {\r\n ret += decsp[1].substring(0, fmtsp[1].length);\r\n }\r\n }\r\n return ret;\r\n }\r\n}\r\n","import axios, { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport { IHttpRequestable, TimeMeasure } from \".\";\r\n\r\nexport class HttpClient implements IHttpRequestable {\r\n constructor(logger: (m: string) => void = TimeMeasure.debug) {\r\n this._logger = logger\r\n ? logger\r\n : TimeMeasure.off;\r\n }\r\n \r\n private readonly _logger?: (m: string) => void;\r\n\r\n async get(url: string, config?: AxiosRequestConfig): Promise> {\r\n return TimeMeasure.logAsync(\r\n \"GET: \" + url + \" \",\r\n async () => {\r\n return axios.get(url, config);\r\n },\r\n (config && config.params) ? HttpClient.paramsToString(config.params) : null,\r\n this._logger\r\n );\r\n return null;\r\n }\r\n \r\n async post(url: string, data?: any, config?: AxiosRequestConfig): Promise> {\r\n return TimeMeasure.logAsync(\r\n \"POST: \" + url + \" \",\r\n async () => {\r\n return axios.post(url, data, config);\r\n },\r\n (config && config.params) ? HttpClient.paramsToString(config.params) : null,\r\n this._logger\r\n );\r\n }\r\n\r\n private static paramsToString(params: any): string {\r\n return Object.keys(params).map((key: string) => key + \"=\" + params[key]).join(\"&\");\r\n }\r\n}\r\n","import { LoggerFactory } from \"./logger\";\r\n\r\nexport class TimeMeasure {\r\n static log(name: string, procedure: () => T, description?: string, logger?: (m: string) => void): T {\r\n const _logger = logger\r\n ? logger\r\n : TimeMeasure.info;\r\n try {\r\n _logger(name + \"開始.\" + (description ? description : \"\"));\r\n const started = TimeMeasure.getTimeStamp();\r\n const result = procedure();\r\n const finished = TimeMeasure.getTimeStamp();\r\n _logger(name + \"終了.所要時間:\" + (finished - started) + \"msec\");\r\n return result;\r\n } catch (e) {\r\n _logger(name + \"異常終了.\");\r\n throw e;\r\n }\r\n }\r\n\r\n static async logAsync(name: string, procedure: () => Promise, description?: string, logger?: (m: string) => void): Promise {\r\n const _logger = logger\r\n ? logger\r\n : TimeMeasure.info;\r\n try {\r\n _logger(name + \"開始.\" + (description ? description : \"\"));\r\n const started = TimeMeasure.getTimeStamp();\r\n const result = await procedure();\r\n const finished = TimeMeasure.getTimeStamp();\r\n _logger(name + \"終了.所要時間:\" + (finished - started) + \"msec\");\r\n return result;\r\n } catch (e) {\r\n _logger(name + \"異常終了.\");\r\n throw e;\r\n }\r\n }\r\n\r\n static getTimeStamp(): number {\r\n return (new Date()).getTime();\r\n }\r\n\r\n private static readonly _defaultLogger = LoggerFactory.getLogger();\r\n\r\n static info(m: string): void {\r\n TimeMeasure._defaultLogger.info(m);\r\n }\r\n\r\n static debug(m: string): void {\r\n TimeMeasure._defaultLogger.debug(m);\r\n }\r\n\r\n static trace(m: string): void {\r\n TimeMeasure._defaultLogger.trace(m);\r\n }\r\n\r\n static off(m: string): void {\r\n // 何も出力しない.\r\n }\r\n}\r\n","import { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport { HttpClient, TimeMeasure, IHttpRequestable } from \"../utilities\";\r\n\r\nexport class AuthenticatedHttpClient implements IHttpRequestable {\r\n constructor(private readonly _getToken: () => string, logger: (m: string) => void = TimeMeasure.debug) {\r\n this._client = new HttpClient(logger);\r\n }\r\n\r\n private readonly _client: HttpClient;\r\n\r\n async get(url: string, config?: AxiosRequestConfig): Promise> {\r\n return this._client.get(\r\n url,\r\n this.toAuthorizedConfig(config),\r\n );\r\n }\r\n\r\n async post(url: string, data?: any, config?: AxiosRequestConfig): Promise> {\r\n return this._client.post(\r\n url,\r\n data,\r\n this.toAuthorizedConfig(config),\r\n );\r\n }\r\n\r\n private toAuthorizedConfig(config?: AxiosRequestConfig): AxiosRequestConfig {\r\n const result = config ? config : {};\r\n result.params = result.params ? result.params : {};\r\n // result.params.token = this.token;\r\n result.headers = result.headers ? result.headers : {};\r\n result.headers.Authorization = \"Bearer \" + this.token;\r\n return result;\r\n }\r\n\r\n public get token(): string {\r\n const token = this._getToken();\r\n if ((token === undefined || token === null || token === \"\")) {\r\n throw new Error(\"token is empty!!!\");\r\n }\r\n return token;\r\n }\r\n}\r\n","import { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport { HttpClient, IHttpRequestable } from \"../utilities\";\r\n\r\nexport class HttpRepository {\r\n public constructor(protected readonly _client: IHttpRequestable = new HttpClient()) {\r\n }\r\n \r\n protected async get(url: string, config?: AxiosRequestConfig): Promise> {\r\n return this._client.get(\r\n url,\r\n config,\r\n );\r\n }\r\n\r\n protected async post(url: string, data?: any, config?: AxiosRequestConfig): Promise> {\r\n return this._client.post(\r\n url,\r\n data,\r\n config,\r\n );\r\n }\r\n}","import { HttpRepository } from \"./HttpRepository\";\r\nimport { AuthenticatedHttpClient } from \"./AuthenticatedHttpClient\";\r\n\r\nexport class AuthenticatedRepository extends HttpRepository {\r\n public constructor(getToken: () => string) {\r\n super(new AuthenticatedHttpClient(getToken));\r\n }\r\n\r\n protected get token(): string {\r\n return (this._client as AuthenticatedHttpClient).token;\r\n }\r\n}\r\n","import { User } from \"../user/User\";\r\n\r\nexport class Authenticate {\r\n token: string;\r\n user: User;\r\n errorCode: number;\r\n}\r\n","import { User } from \"../../../domain/user\";\r\nimport { IUserBean } from \"../beans\";\r\n\r\nexport class UserTranslator {\r\n static toUser(bean: IUserBean): User {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n return new User(bean.code, bean.name);\r\n }\r\n}\r\n","import axios from \"axios\";\r\nimport { AuthenticatedRepository } from \"..\";\r\nimport { Authenticate } from \"../../domain/authentication\";\r\nimport { LoggerFactory } from \"../../utilities/logger\";\r\nimport { UserTranslator } from \"../user/translators\";\r\nimport { IAuthenticateBean, IAuthenticateRequestBean } from \"./beans\";\r\n\r\nexport class AuthenticationRepository extends AuthenticatedRepository {\r\n private readonly _logger = LoggerFactory.getLogger();\r\n \r\n constructor(getToken: () => string) {\r\n super(getToken);\r\n }\r\n\r\n async getAuthentication(id: string, password: string): Promise {\r\n const url = \"/api/account/login\";\r\n const request = this.createAuthenticateRequestBean(id, password);\r\n this._logger.debug(\"[POST] \" + url);\r\n const result = await axios.post(url, request);\r\n this._logger.debug(result.data);\r\n return this.toAuthenticate(result.data);\r\n }\r\n\r\n async discardAuthentication(): Promise {\r\n const url = \"/api/account/logout\";\r\n await this.post(url);\r\n }\r\n\r\n private createAuthenticateRequestBean(id: string, password: string): IAuthenticateRequestBean {\r\n return {\r\n userId: id,\r\n password: password,\r\n };\r\n }\r\n\r\n private toAuthenticate(bean: IAuthenticateBean): Authenticate {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n const result = new Authenticate();\r\n result.token = bean.token;\r\n result.user = UserTranslator.toUser(bean.user);\r\n return result;\r\n }\r\n}\r\n","export class Folder {\r\n comment: string;\r\n url: string;\r\n guid: string;\r\n size: number;\r\n maxSize: number;\r\n createDateTime: Date;\r\n expirationDateTime: Date;\r\n password: string;\r\n published: boolean;\r\n\r\n clone(): Folder {\r\n const result = new Folder();\r\n result.comment = this.comment;\r\n result.url = this.url;\r\n result.guid = this.guid;\r\n result.size = this.size;\r\n result.maxSize = this.maxSize;\r\n result.createDateTime = this.createDateTime;\r\n result.expirationDateTime = this.expirationDateTime;\r\n result.password = this.password;\r\n result.published = this.published;\r\n \r\n return result;\r\n }\r\n}\r\n","export class FolderDispInfo {\r\n constructor() {\r\n this.forceCompressionCount = 10;\r\n }\r\n\r\n public forceCompressionCount: number;\r\n}","import Moment from \"moment\";\r\n\r\nexport class DateTimeConverter {\r\n static toDate(value: string): Date {\r\n const dateTimeFormat = \"YYYYMMDDHHmm\";\r\n const parsed = Moment(value, dateTimeFormat).toDate();\r\n return !parsed\r\n ? undefined\r\n : parsed;\r\n }\r\n}\r\n","\r\nexport class PasswordCreator {\r\n private static readonly passwordNumeric: string = \"1234567890\";\r\n private static passwordUppercase: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n private static passwordLowercase: string = \"abcdefghijklmnopqrstuvwxyz\";\r\n private static passwordSymbol: string = '!\"#$%&()=~|@[];:+-*<>?_>.,\\'';\r\n\r\n static getPassword(): string {\r\n const length = 12;\r\n let password = '';\r\n\t const passwordBase = (this.passwordNumeric + this.passwordUppercase + this.passwordLowercase + this.passwordSymbol);\r\n\t for (let i = 0; i < length; i++) {\r\n\t \tpassword += passwordBase.charAt(Math.floor(Math.random() * passwordBase.length));\r\n\t }\r\n\t return password;\r\n }\r\n}\r\n","import { Folder, FolderDispInfo } from \"../../../domain/folder\";\r\nimport { DateTimeConverter } from \"../../utilities\";\r\nimport { IFolderBean, IFolderDisplayBean } from \"../beans\";\r\n\r\nexport class FolderTranslator {\r\n static toFolderDispInfo(bean: IFolderDisplayBean): FolderDispInfo {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n const result = new FolderDispInfo();\r\n result.forceCompressionCount = bean.forceCompressionCount;\r\n \r\n return result;\r\n }\r\n\r\n static toFolder(bean: IFolderBean): Folder {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n\r\n const result = new Folder();\r\n result.comment = bean.comment;\r\n result.url = bean.url;\r\n result.guid = bean.guid;\r\n result.size = bean.size;\r\n result.maxSize = bean.maxSize;\r\n result.createDateTime = DateTimeConverter.toDate(bean.createDateTime);\r\n result.expirationDateTime = DateTimeConverter.toDate(bean.expirationDateTime);\r\n result.password = bean.password;\r\n result.published = bean.published;\r\n return result;\r\n }\r\n\r\n static toFolderBean(source: Folder): IFolderBean {\r\n if (!source) { throw new Error(\"source is empty!!!\"); }\r\n\r\n return {\r\n comment: source.comment,\r\n url: source.url,\r\n guid: source.guid,\r\n size: source.size,\r\n maxSize: source.maxSize,\r\n createDateTime: null,\r\n expirationDateTime: null,\r\n password: source.password,\r\n published: source.published,\r\n };\r\n }\r\n}\r\n","import Moment from \"moment\";\r\n\r\nexport class ShareDateTranslator {\r\n // constructor(private _format: string) {\r\n // }\r\n\r\n private readonly DATE_FORMAT = \"YYYYMMDD\";\r\n private readonly TIME_FORMAT = \"HHmm00\";\r\n private readonly DATETIME_FORMAT = \"YYYYMMDDHHmmss\";\r\n\r\n private readonly DATE_DISP_FORMAT = \"YYYY/MM/DD\";\r\n private readonly TIME_DISP_FORMAT = \"HH:mm\";\r\n private readonly DATETIME_DISP_FORMAT = \"YYYY/MM/DD HH:mm\";\r\n\r\n private readonly TIMESTAMP_FORMAT = \"YYYY/MM/DD HH:mm:ss\";\r\n\r\n // -- string to Date --\r\n\r\n fromDateString(source: string): Date {\r\n return this.toDate(source, this.DATE_FORMAT);\r\n }\r\n\r\n // From version 2.11.0 parsing hmm, Hmm, hmmss and Hmmss is supported:\r\n // moment(\"123\", \"hmm\").format(\"HH:mm\") === \"01:23\"\r\n // moment(\"1234\", \"hmm\").format(\"HH:mm\") === \"12:34\"\r\n\r\n fromTimeString(source: string): Date {\r\n return this.toDate(source, this.TIME_FORMAT);\r\n }\r\n\r\n fromDateTimeString(source: string): Date {\r\n return this.toDate(source, this.DATETIME_FORMAT);\r\n }\r\n\r\n private toDate(source: string, format: string): Date {\r\n if (!source) { return null; }\r\n return Moment(source, format).toDate();\r\n }\r\n\r\n // -- Date to string --\r\n\r\n toDateString(source: Date): string {\r\n return this.fromDate(source, this.DATE_FORMAT);\r\n }\r\n\r\n toTimeString(source: Date): string {\r\n return this.fromDate(source, this.TIME_FORMAT);\r\n }\r\n\r\n toDateTimeString(source: Date): string {\r\n return this.fromDate(source, this.DATETIME_FORMAT);\r\n }\r\n\r\n toDateDispString(source: Date): string {\r\n return this.fromDate(source, this.DATE_DISP_FORMAT);\r\n }\r\n\r\n toTimeDispString(source: Date): string {\r\n return this.fromDate(source, this.TIME_DISP_FORMAT);\r\n }\r\n\r\n toDateTimeDispString(source: Date): string {\r\n return this.fromDate(source, this.DATETIME_DISP_FORMAT);\r\n }\r\n\r\n toTimeStampString(source: Date): string {\r\n const dateStr = this.fromDate(source, this.TIMESTAMP_FORMAT);\r\n if (dateStr) {return dateStr + \":\" + (\"000\" + source.getMilliseconds()).slice(-3); }\r\n\r\n return dateStr;\r\n }\r\n\r\n private fromDate(source: Date, format: string): string {\r\n if (!source) { return \"\"; }\r\n return Moment(source).format(format);\r\n }\r\n\r\n // 計算\r\n\r\n addDays(target: Date, days: number): Date {\r\n return Moment(target).add(days, \"days\").toDate();\r\n }\r\n\r\n durationDays(from: Date, to: Date): number {\r\n if (!from || !to) { return null; }\r\n\r\n const fromM = Moment(from);\r\n const toM = Moment(to);\r\n\r\n return toM.diff(fromM, \"days\");\r\n }\r\n\r\n}\r\n","import { Authenticate } from \"@/domain/authentication\";\r\nimport { AuthenticatedRepository } from \"..\";\r\nimport { Folder, FolderDispInfo, IFolderRepository } from \"../../domain/folder\";\r\nimport { IAuthenticateBean } from \"../authentication/beans\";\r\nimport { UserTranslator } from \"../user/translators\";\r\nimport { IFolderBean } from \"./beans\";\r\nimport { FolderTranslator } from \"./translators\";\r\n\r\nexport class FolderRepository extends AuthenticatedRepository implements IFolderRepository {\r\n constructor(getToken: () => string) {\r\n super(getToken);\r\n }\r\n\r\n async getFolderDispInfo(): Promise {\r\n const url = \"/api/folder/init\";\r\n const result = await this.get(url);\r\n return FolderTranslator.toFolderDispInfo(result.data);\r\n }\r\n\r\n async getFolders(): Promise {\r\n const url = \"/api/folders\";\r\n const result = await this.get(url);\r\n return this.toFolders(result.data);\r\n }\r\n\r\n private toFolders(beans: IFolderBean[]): Folder[] {\r\n if (!beans) { return []; }\r\n return beans.map(b => FolderTranslator.toFolder(b));\r\n }\r\n\r\n async getFolder(guid: string): Promise {\r\n const url = \"/api/folder/\" + guid;\r\n const result = await this.get(url);\r\n return FolderTranslator.toFolder(result.data);\r\n }\r\n\r\n async createFolder(folder: Folder): Promise {\r\n const url = \"/api/folders/create\";\r\n const bean = FolderTranslator.toFolderBean(folder);\r\n await this.post(url, bean);\r\n }\r\n \r\n async updateFolder(guid: string, folder: Folder): Promise {\r\n const url = \"/api/folder/\" + guid + \"/update\";\r\n const bean = FolderTranslator.toFolderBean(folder);\r\n await this.post(url, bean);\r\n }\r\n\r\n async deleteFolder(guid: string): Promise {\r\n const url = \"/api/folder/\" + guid + \"/delete\";\r\n await this.post(url);\r\n }\r\n\r\n async republishFolder(guid: string, password: string): Promise {\r\n const url = \"/api/folder/\" + guid + \"/republish\";\r\n const result = await this.post(\r\n url,\r\n {\r\n password: password,\r\n });\r\n return result.data;\r\n }\r\n\r\n async getFolderAuthenticationInfo(guid: string): Promise {\r\n const url = \"/api/folder/\" + guid + \"/login-info\";\r\n const result = await this.get(url);\r\n return this.toAuthenticate(result.data);\r\n }\r\n \r\n private toAuthenticate(bean: IAuthenticateBean): Authenticate {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n const result = new Authenticate();\r\n result.token = bean.token;\r\n result.user = UserTranslator.toUser(bean.user);\r\n return result;\r\n }\r\n \r\n}\r\n","import { default as store } from \"../../store\";\r\nimport { HttpClient } from \"../../utilities\";\r\nimport { IFolderService } from \"../../domain/folder\";\r\nimport { Authenticate } from \"../../domain/authentication\";\r\n\r\nexport class FolderService implements IFolderService {\r\n\r\n async authenticate(guid: string, password: string, reCaptchaResponse: string): Promise {\r\n try {\r\n // TODO: recaptcha対応.\r\n const client = new HttpClient();\r\n const result = await client.post(\r\n \"/api/folder/\" + guid + \"/auth\",\r\n {\r\n password,\r\n reCaptchaResponse,\r\n });\r\n const data = result.data as Authenticate;\r\n if (data.errorCode === 0) {\r\n this.updateStore(data, guid);\r\n }\r\n return data.errorCode;\r\n } catch (e) {\r\n this.clearStore();\r\n throw e;\r\n }\r\n }\r\n\r\n private updateStore(source: Authenticate, guid: string): void {\r\n store.commit(\"setToken\", source.token);\r\n console.debug(store.getters.token);\r\n store.commit(\"setUser\", \"\");\r\n console.debug(store.getters.user);\r\n store.commit(\"setFolderGuid\", guid);\r\n console.debug(store.getters.folderGuid);\r\n }\r\n\r\n private clearStore(): void {\r\n store.commit(\"setToken\", null);\r\n }\r\n}\r\n","import { IFolderRegistry, IFolderService, IFolderRepository } from \"../../domain/folder\";\r\nimport { FolderRepository } from \"./FolderRepository\";\r\nimport { FolderService } from \"./FolderService\";\r\n\r\nexport class FolderRegistry implements IFolderRegistry {\r\n constructor(getToken: () => string) {\r\n this._service = new FolderService();\r\n this._repository = new FolderRepository(getToken);\r\n }\r\n\r\n private readonly _service: IFolderService;\r\n private readonly _repository: IFolderRepository;\r\n\r\n getFolderService(): IFolderService {\r\n return this._service;\r\n }\r\n\r\n getFolderRepository(): IFolderRepository {\r\n return this._repository;\r\n }\r\n}\r\n","import { FileRepository } from \".\";\r\nimport { IFileRegistry, IFileRepository } from \"../../domain/file\";\r\n\r\nexport class FileRegistry implements IFileRegistry {\r\n constructor(getToken: () => string) {\r\n this._repository = new FileRepository(getToken);\r\n }\r\n\r\n private readonly _repository: IFileRepository;\r\n\r\n getFileRepository(): IFileRepository {\r\n return this._repository;\r\n }\r\n}\r\n","import { IContentSource } from \".\";\r\n\r\nexport class FileHeader {\r\n id: string;\r\n name: string;\r\n size: number;\r\n createDateTime: Date;\r\n createUserCode: string;\r\n source: IContentSource;\r\n}\r\n","import { DownloadSource } from \"..\";\r\nimport { FileHeader } from \"../../../domain/file\";\r\nimport { DateTimeConverter } from \"../../utilities\";\r\nimport { IFileHeaderBean } from \"../beans\";\r\n\r\nexport class FileTranslators {\r\n static toFileHeader(getToken: () => string, folderGuid: string, bean: IFileHeaderBean): FileHeader {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n \r\n const result = new FileHeader();\r\n result.id = bean.id;\r\n result.name = bean.name;\r\n result.size = bean.size;\r\n result.createDateTime = DateTimeConverter.toDate(bean.createDateTime);\r\n result.createUserCode = bean.createUserCode;\r\n result.source = new DownloadSource(getToken, folderGuid, bean.id);\r\n return result;\r\n }\r\n}\r\n","import { AuthenticatedRepository } from \"..\";\r\nimport { FileHeader, IFileRepository } from \"../../domain/file\";\r\nimport { IFileHeaderBean } from \"./beans\";\r\nimport { FileTranslators } from \"./translators\";\r\n\r\nexport class FileRepository extends AuthenticatedRepository implements IFileRepository {\r\n constructor(getToken: () => string) {\r\n super(getToken);\r\n }\r\n\r\n async getFileHeaders(folderGuid: string): Promise {\r\n const url = \"/api/folder/\" + folderGuid + \"/files\";\r\n const result = await this.get(url);\r\n return this.toFileHeaders(folderGuid, result.data);\r\n }\r\n\r\n private toFileHeaders(folderGuid: string, beans: IFileHeaderBean[]): FileHeader[] {\r\n if (!beans) { return []; }\r\n return beans.map(b => FileTranslators.toFileHeader(() => this.token, folderGuid, b));\r\n }\r\n\r\n async deleteFile(folderGuid: string, fileId: string): Promise {\r\n const url = \"/api/folder/\" + folderGuid + \"/file/\" + fileId + \"/delete\";\r\n await this.post(url);\r\n }\r\n\r\n async uploadFile(folderGuid: string, fileName: string, file: File): Promise {\r\n const url = \"/api/folder/\" + folderGuid + \"/upload\";\r\n const formData = new FormData();\r\n formData.append(\"fileName\", fileName);\r\n formData.append(\"data\", file);\r\n const headers = { \"content-type\": \"multipart/form-data\" };\r\n await this.post(url, formData, { headers });\r\n }\r\n\r\n downloadBatchFiles(folderGuid: string): string {\r\n return \"/api/folder/\" + folderGuid + \"/files/download?token=\" + this.token;\r\n }\r\n}\r\n","import { IContentSource } from \"../../domain/file\";\r\n\r\nexport class DownloadSource implements IContentSource {\r\n constructor(private _getToken: () => string, private _folderGuid: string, private _fileId: string) {\r\n }\r\n\r\n get token(): string {\r\n return this._getToken();\r\n }\r\n\r\n get source(): string {\r\n return \"/api/folder/\" + this._folderGuid + \"/file/\" + this._fileId + \"/download?token=\" + this.token;\r\n }\r\n}\r\n","export class FolderHistory {\r\n folderId: string;\r\n createDateTime: Date;\r\n updateDateTime: Date;\r\n comment: string;\r\n password: string;\r\n published: boolean;\r\n isDeleted: boolean;\r\n}\r\n","export class DownloadHistory {\r\n dateTime: Date;\r\n userName: string;\r\n fileName: string;\r\n ipAddress: string;\r\n}\r\n","import { DownloadHistory, FolderHistory } from \"../../../domain/history\";\r\nimport { DateTimeConverter } from \"../../utilities\";\r\nimport { IDownloadHistoryBean, IFolderHistoryBean } from \"../beans\";\r\n\r\nexport class HistoryTranslator {\r\n static toFolderHistory(bean: IFolderHistoryBean): FolderHistory {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n\r\n const result = new FolderHistory();\r\n result.folderId = bean.folderId;\r\n result.createDateTime = DateTimeConverter.toDate(bean.createDateTime);\r\n result.updateDateTime = DateTimeConverter.toDate(bean.updateDateTime);\r\n result.comment = bean.comment;\r\n result.password = bean.password;\r\n result.published = bean.published;\r\n result.isDeleted = bean.isDeleted;\r\n return result;\r\n }\r\n\r\n static toDownloadHistory(bean: IDownloadHistoryBean): DownloadHistory {\r\n if (!bean) { throw new Error(\"bean is empty!!!\"); }\r\n \r\n const result = new DownloadHistory();\r\n result.dateTime = DateTimeConverter.toDate(bean.dateTime);\r\n result.userName = bean.userName;\r\n result.fileName = bean.fileName;\r\n result.ipAddress = bean.ipAddress;\r\n return result;\r\n }\r\n}\r\n","import { FolderHistory, IHistoryRepository } from \"../../domain/history\";\r\nimport { DownloadHistory } from \"../../domain/history/DownloadHistory\";\r\nimport { AuthenticatedRepository } from \"../AuthenticatedRepository\";\r\nimport { IDownloadHistoryBean, IFolderHistoryBean } from \"./beans\";\r\nimport { HistoryTranslator } from \"./translators\";\r\n\r\nexport class HistoryRepository extends AuthenticatedRepository implements IHistoryRepository {\r\n constructor(getToken: () => string) {\r\n super(getToken);\r\n }\r\n\r\n async getFolderHistories(): Promise {\r\n const url = \"/api/folders/history\";\r\n const result = await this.get(url);\r\n return this.toFolderHistories(result.data);\r\n }\r\n\r\n private toFolderHistories(beans: IFolderHistoryBean[]): FolderHistory[] {\r\n if (!beans) { return []; }\r\n return beans.map(b => HistoryTranslator.toFolderHistory(b));\r\n }\r\n\r\n async getDownloadHistories(folderGuid: string): Promise {\r\n const url = \"/api/folder/\" + folderGuid + \"/download-history\";\r\n const result = await this.get(url);\r\n return this.toDownloadHistories(result.data);\r\n }\r\n\r\n private toDownloadHistories(beans: IDownloadHistoryBean[]): DownloadHistory[] {\r\n if (!beans) { return []; }\r\n return beans.map(b => HistoryTranslator.toDownloadHistory(b));\r\n }\r\n}\r\n","import { IHistoryRegistry, IHistoryRepository } from \"../../domain/history\";\r\nimport { HistoryRepository } from \"./HistoryRepository\";\r\n\r\nexport class HistoryRegistry implements IHistoryRegistry {\r\n constructor(getToken: () => string) {\r\n this._repository = new HistoryRepository(getToken);\r\n }\r\n\r\n private readonly _repository: IHistoryRepository;\r\n\r\n getHistoryRepository(): IHistoryRepository {\r\n return this._repository;\r\n }\r\n}\r\n","import store from \"../store\";\r\nimport { IConfigurationRegistry } from \"./configuration\";\r\nimport { IAuthenticationRegistry } from \"./authentication\";\r\nimport { IFolderRegistry } from \"./folder\";\r\nimport { IFileRegistry } from \"./file\";\r\nimport { IHistoryRegistry } from \"./history\";\r\nimport { ConfigurationRegistry } from \"../infrastructure/configuration\";\r\nimport { AuthenticationRegistry } from \"../infrastructure/authentication\";\r\nimport { FolderRegistry } from \"../infrastructure/folder\";\r\nimport { FileRegistry } from \"../infrastructure/file\";\r\nimport { HistoryRegistry } from \"../infrastructure/history\";\r\n\r\nexport class DomainRegistry {\r\n // シングルトンインスタンス.\r\n static readonly instance: DomainRegistry = new DomainRegistry();\r\n\r\n constructor() {\r\n this.configuration = new ConfigurationRegistry();\r\n this.authentication = new AuthenticationRegistry(this.getToken);\r\n this.file = new FileRegistry(this.getToken);\r\n this.folder = new FolderRegistry(this.getToken);\r\n this.history = new HistoryRegistry(this.getToken);\r\n }\r\n\r\n public readonly configuration: IConfigurationRegistry;\r\n public readonly authentication: IAuthenticationRegistry;\r\n public readonly file: IFileRegistry;\r\n public readonly folder: IFolderRegistry;\r\n public readonly history: IHistoryRegistry;\r\n protected getToken: () => string = () => store.getters.token;\r\n\r\n static get configuration(): IConfigurationRegistry {\r\n return DomainRegistry.instance.configuration;\r\n }\r\n static get authentication(): IAuthenticationRegistry {\r\n return DomainRegistry.instance.authentication;\r\n }\r\n static get file(): IFileRegistry {\r\n return DomainRegistry.instance.file;\r\n }\r\n static get folder(): IFolderRegistry {\r\n return DomainRegistry.instance.folder;\r\n }\r\n static get history(): IHistoryRegistry {\r\n return DomainRegistry.instance.history;\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins } from \"vue-property-decorator\";\r\nimport { DomainRegistry } from \"../../domain\";\r\n\r\n@Component\r\nexport default class LoginView extends Mixins() {\r\n data(): any {\r\n return {\r\n isAuthenticating: false,\r\n id: null,\r\n password: null,\r\n };\r\n }\r\n isAuthenticating: boolean;\r\n id: string;\r\n password: string;\r\n\r\n $refs!: {\r\n password: HTMLInputElement,\r\n };\r\n\r\n authenticate(): void {\r\n if (this.isAuthenticating) { return; }\r\n const service = DomainRegistry.authentication.getAuthenticationService();\r\n service.login(this.id, this.password)\r\n .then(() => {\r\n this.handleAuthenticationSucceeded();\r\n })\r\n .catch(e => {\r\n this.handleAuthenticationFailed(\r\n e,\r\n \"ログイン失敗\",\r\n \"ログイン失敗しました。ログインIDとパスワードを確認してください。\",\r\n );\r\n }\r\n );\r\n }\r\n\r\n private async handleAuthenticationSucceeded(): Promise {\r\n const destination = this.queryParameterToFirstString(this.$route.query.redirect);\r\n this.$router.replace(destination ? destination : \"/\");\r\n }\r\n\r\n private queryParameterToFirstString(value: string | (string | null)[]): string {\r\n return Array.isArray(value)\r\n ? ((0 < value.length) ? value[0] : null)\r\n : value;\r\n }\r\n\r\n private handleAuthenticationFailed(error: Error, title: string, message: string): void {\r\n console.warn(error);\r\n this.password = \"\";\r\n this.$warn(\r\n title,\r\n message,\r\n );\r\n }\r\n\r\n focusToPassword(): void {\r\n this.$refs.password.focus();\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginView.vue?vue&type=template&id=454b5a23&scoped=true&\"\nimport script from \"./LoginView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginView.vue?vue&type=style&index=0&id=454b5a23&lang=scss&scoped=true&\"\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 \"454b5a23\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"home-root\"},[_c('div',{staticClass:\"home-menu\"},[_c('div',{staticClass:\"home-menu-left\"},[_c('button',{staticClass:\"home-menu-folder-list\",on:{\"click\":function($event){_vm.componentKey='FolderListView'}}},[_vm._v(\"フォルダ一覧\")]),_c('button',{staticClass:\"home-menu-download-history\",on:{\"click\":function($event){_vm.componentKey='DownloadHistoryView'}}},[_vm._v(\"ダウンロード履歴\")]),_c('button',{staticClass:\"home-menu-folder-history\",on:{\"click\":function($event){_vm.componentKey='FolderHistoryView'}}},[_vm._v(\"フォルダ履歴\")])]),_c('div',{staticClass:\"home-menu-right\"},[_c('span',[_vm._v(\"共通ID:\"+_vm._s(_vm.userId))]),_c('button',{staticClass:\"home-menu-logout\",on:{\"click\":_vm.logout}},[_vm._v(\"ログアウト\")])])]),_c(_vm.componentKey,{tag:\"component\",staticClass:\"home-content\"})],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:\"folder-list-view-root\"},[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"folder-list-view-content\",style:({ width: _vm.selectorWidth + 'px' })},[_c('div',{staticClass:\"folder-list-view-title\"},[_vm._v(\"フォルダ一覧\")]),_c('div',{staticClass:\"folder-list-view-menu\"},[_c('button',{staticClass:\"folder-list-view-add\",on:{\"click\":_vm.addFolder}},[_vm._v(\"フォルダ追加\")]),_c('button',{staticClass:\"folder-list-view-edit\",attrs:{\"disabled\":!_vm.selectedFolder},on:{\"click\":_vm.editFolder}},[_vm._v(\"フォルダ編集\")]),_c('button',{staticClass:\"folder-list-view-delete\",attrs:{\"disabled\":!_vm.selectedFolder},on:{\"click\":_vm.deleteSelectedFolder}},[_vm._v(\"フォルダ削除\")]),_c('folder-edit-dialog',{attrs:{\"isEdit\":_vm.isDialogEdit,\"editSource\":_vm.selectedFolder},on:{\"confirm\":_vm.editConfirm},model:{value:(_vm.isDialogVisible),callback:function ($$v) {_vm.isDialogVisible=$$v},expression:\"isDialogVisible\"}})],1),_c('folder-table-selector',{staticClass:\"folder-list-view-selector\",attrs:{\"folders\":_vm.folders},on:{\"selection-changed\":_vm.selectionChanged}})],1),_c('separator',{staticClass:\"folder-list-view-separator\",model:{value:(_vm.selectorWidth),callback:function ($$v) {_vm.selectorWidth=$$v},expression:\"selectorWidth\"}}),_c('file-list-view',{staticClass:\"folder-list-view-file-list\",attrs:{\"folderGuid\":_vm.selectedGuid},on:{\"files-changed\":_vm.filesChanged}})],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:\"folder-table-selector\"},[_c('el-table',{ref:\"table\",attrs:{\"data\":_vm.folders,\"height\":\"100%\",\"empty-text\":\"フォルダなし\",\"highlight-current-row\":\"\"},on:{\"current-change\":_vm.selectionChanged}},[_c('el-table-column',{attrs:{\"label\":\"作成日時\",\"property\":\"createDateTime\",\"width\":\"160\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(_vm.toDateTimeString(scope.row.createDateTime)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"URL\",\"property\":\"url\",\"width\":\"320\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(scope.row.url))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"アクセスコード\",\"property\":\"password\",\"width\":\"160\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(scope.row.password))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"コメント\",\"property\":\"comment\",\"width\":\"320\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(scope.row.comment))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"有効期限\",\"property\":\"expirationDateTime\",\"width\":\"120\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(_vm.toDateString(scope.row.expirationDateTime)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"サイズ\",\"property\":\"size\",\"width\":\"130\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(_vm.toDisplaySize(scope.row.size)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"状態\",\"width\":\"80\",\"sortable\":\"\",\"sort-method\":_vm.sortFolderStatus},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',{class:_vm.toFolderStatusClass(scope.row)},[_vm._v(_vm._s(_vm.toFolderStatus(scope.row)))])]}}])}),_c('el-table-column')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Folder } from \"@/domain/folder\";\r\nimport { ShareDateTranslator } from \"@/infrastructure/folder/translators\";\r\nimport { FileSizeConverter } from \"@/utilities\";\r\nimport { Component, Mixins, Prop, Emit } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FolderTableSelector extends Mixins() {\r\n @Prop()\r\n folders: Folder[];\r\n\r\n toDateTimeString(date: Date): string {\r\n const dateTranslator = new ShareDateTranslator();\r\n return dateTranslator.toDateTimeDispString(date);\r\n }\r\n\r\n toDateString(date: Date): string {\r\n const dateTranslator = new ShareDateTranslator();\r\n return dateTranslator.toDateDispString(date);\r\n }\r\n\r\n toDisplaySize(size: number): string {\r\n return FileSizeConverter.toString(size);\r\n }\r\n\r\n toFolderStatusClass(folder: Folder): string {\r\n return folder.published\r\n ? \"publish\"\r\n : \"private\";\r\n }\r\n\r\n toFolderStatus(folder: Folder): string {\r\n return folder.published\r\n ? \"公開中\"\r\n : \"非公開\";\r\n }\r\n\r\n sortFolderStatus(a: Folder, b: Folder): number {\r\n return (a.published ? 0 : 1) - (b.published ? 0 : 1);\r\n }\r\n\r\n @Emit()\r\n selectionChanged(value: Folder): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderTableSelector.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderTableSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderTableSelector.vue?vue&type=template&id=6a6f1300&scoped=true&\"\nimport script from \"./FolderTableSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderTableSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FolderTableSelector.vue?vue&type=style&index=0&id=6a6f1300&lang=scss&scoped=true&\"\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 \"6a6f1300\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"visible\":_vm.visible,\"title\":_vm.title,\"width\":\"500px\"},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('div',{staticClass:\"folder-edit-dialog-content\"},[_c('div',[_c('label',[_c('span',[_vm._v(\"コメント\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.comment),expression:\"comment\"}],staticClass:\"comment-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.comment)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.comment=$event.target.value}}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isEdit),expression:\"isEdit\"}]},[_c('label',[_c('span',[_vm._v(\"アクセスコード\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}})]),_c('button',{staticClass:\"password-create\",on:{\"click\":_vm.onCreatePassword}},[_vm._v(\"自動生成\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isEdit),expression:\"isEdit\"}]},[_c('label',[_c('span',[_vm._v(\"公開する\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.published),expression:\"published\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.published)?_vm._i(_vm.published,null)>-1:(_vm.published)},on:{\"change\":function($event){var $$a=_vm.published,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.published=$$a.concat([$$v]))}else{$$i>-1&&(_vm.published=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.published=$$c}}}})])])]),_c('span',{staticClass:\"folder-edit-dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"cancel\",on:{\"click\":_vm.onCancel}},[_vm._v(\"取消\")]),_c('button',{staticClass:\"confirm\",attrs:{\"disabled\":!_vm.confirmEnabled},on:{\"click\":_vm.onConfirm}},[_vm._v(\"確定\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Folder } from \"@/domain/folder\";\r\nimport { PasswordCreator } from \"@/infrastructure/utilities\";\r\nimport { Mixins, Component, Model, Prop, Watch, Emit } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FolderEditDialog extends Mixins() {\r\n @Model(\"input\")\r\n isVisible: boolean;\r\n\r\n @Prop()\r\n isEdit: boolean;\r\n\r\n @Prop()\r\n editSource: Folder;\r\n\r\n data() {\r\n return {\r\n visible: false,\r\n comment: \"\",\r\n password: \"\",\r\n published: true,\r\n };\r\n }\r\n visible: boolean;\r\n comment: string;\r\n password: string;\r\n published: boolean;\r\n\r\n get title(): string {\r\n return this.isEdit\r\n ? \"フォルダ編集\"\r\n : \"フォルダ追加\";\r\n }\r\n\r\n get confirmEnabled(): boolean {\r\n return !!this.comment && (!this.isEdit || !!this.password) ;\r\n }\r\n\r\n onCancel(): void {\r\n this.visible = false;\r\n }\r\n\r\n onConfirm(): void {\r\n if (!this.isEdit) {\r\n // フォルダ追加は自動でパスワードを生成\r\n this.onCreatePassword();\r\n }\r\n\r\n const folder = this.isEdit ? this.editSource.clone() : new Folder();\r\n folder.comment = this.comment;\r\n folder.password = this.password;\r\n folder.published = this.published;\r\n\r\n this.confirm(folder);\r\n this.visible = false;\r\n }\r\n\r\n onCreatePassword(): void {\r\n this.password = PasswordCreator.getPassword();\r\n }\r\n\r\n @Watch(\"isVisible\")\r\n onIsVisibleUpdated(newValue: boolean, oldValue: boolean): void {\r\n if (newValue) {\r\n if (this.isEdit) {\r\n this.comment = this.editSource.comment as string;\r\n this.password = this.editSource.password as string;\r\n this.published = this.editSource.published;\r\n } else {\r\n this.comment = \"\";\r\n this.password = \"\";\r\n this.published = true;\r\n }\r\n }\r\n this.visible = newValue;\r\n }\r\n\r\n @Watch(\"visible\")\r\n onVisibleUpdated(newValue: boolean, oldValue: boolean): void {\r\n this.input(newValue);\r\n }\r\n\r\n @Emit()\r\n confirm(value: Folder): void {}\r\n\r\n @Emit()\r\n input(value: boolean): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderEditDialog.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderEditDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderEditDialog.vue?vue&type=template&id=18644200&scoped=true&\"\nimport script from \"./FolderEditDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderEditDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FolderEditDialog.vue?vue&type=style&index=0&id=18644200&lang=scss&scoped=true&\"\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 \"18644200\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"file-list-view-root\"},[_c('div',{staticClass:\"file-list-view-title\"},[_vm._v(\"ファイル一覧\")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.warningMessageEnable),expression:\"warningMessageEnable\"}],staticClass:\"file-list-warn-message\"},[_vm._v(\"※管理者がアップロードしたファイルは削除できません。\")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.downloadWarningMessageEnable),expression:\"downloadWarningMessageEnable\"}],staticClass:\"file-list-warn-message\"},[_vm._v(_vm._s(_vm.downloadWarningMessage))]),_c('div',{staticClass:\"file-list-view-menu\"},[_c('button',{staticClass:\"file-list-view-add\",attrs:{\"disabled\":!_vm.folderGuid},on:{\"click\":_vm.addFile}},[_vm._v(\"ファイル追加\")]),_c('button',{staticClass:\"file-list-view-delete\",attrs:{\"disabled\":!_vm.deleteEnable},on:{\"click\":_vm.deleteSelectedFile}},[_vm._v(\"ファイル削除\")]),_c('button',{staticClass:\"file-list-view-downLoad\",attrs:{\"disabled\":!_vm.downloadEnable},on:{\"click\":_vm.downLoadFile}},[_vm._v(\"ダウンロード\")]),_c('button',{staticClass:\"file-list-view-downLoad\",attrs:{\"disabled\":_vm.files.length === 0},on:{\"click\":_vm.downloadBatchFiles}},[_vm._v(\"全ファイルダウンロード\")]),_c('div',{ref:\"downLoadFiles\",staticClass:\"file-list-view-downLoad-files\"},_vm._l((_vm.selectedFiles),function(file){return _c('a',{key:file.id,attrs:{\"href\":file.source.source,\"download\":file.name}})}),0),_c('file-upload-dialog',{attrs:{\"folderGuid\":_vm.folderGuid},on:{\"confirm\":_vm.uploadConfirm},model:{value:(_vm.isDialogVisible),callback:function ($$v) {_vm.isDialogVisible=$$v},expression:\"isDialogVisible\"}})],1),_c('file-table-selector',{staticClass:\"folder-list-view-selector\",attrs:{\"files\":_vm.files},on:{\"selection-changed\":_vm.selectionChanged}})],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('el-dialog',{attrs:{\"visible\":_vm.visible,\"title\":\"ファイルアップロード\"},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isUploading),expression:\"isUploading\"}],staticClass:\"file-upload-dialog-content\",on:{\"dragover\":function($event){$event.stopPropagation();$event.preventDefault();},\"drop\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.addFiles($event.dataTransfer.files)}}},[_c('input',{ref:\"input\",attrs:{\"type\":\"file\",\"multiple\":\"\"},on:{\"change\":function($event){return _vm.addFiles($event.target.files)}}}),_c('div',{staticClass:\"content\"},[_c('button',{staticClass:\"open-file\",on:{\"click\":_vm.openDialog}},[_vm._v(\"開く\")]),_c('span',[_vm._v(\"ファイルはドロップでも追加できます。\")]),_c('button',{staticClass:\"delete-file\",attrs:{\"disabled\":_vm.selectedFiles.length === 0},on:{\"click\":_vm.deleteSelectedFiles}},[_vm._v(\"ファイル取消\")])]),_c('el-table',{attrs:{\"data\":_vm.tableData,\"empty-text\":\"ファイルなし\",\"height\":\"100%\"},on:{\"selection-change\":_vm.selectionChanged}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"50\"}}),_c('el-table-column',{attrs:{\"label\":\"ファイル名称\",\"property\":\"name\",\"width\":\"320\"}}),_c('el-table-column',{attrs:{\"label\":\"サイズ\",\"property\":\"size\",\"width\":\"130\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toFileSize(scope.row.size)))])]}}])}),_c('el-table-column')],1)],1),_c('span',{staticClass:\"file-upload-dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"cancel\",on:{\"click\":_vm.onCancel}},[_vm._v(\"取消\")]),_c('button',{staticClass:\"confirm\",attrs:{\"disabled\":_vm.isUploading || _vm.tableData.length === 0},on:{\"click\":_vm.onConfirm}},[_vm._v(\"確定\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Mixins, Component, Model, Prop, Watch, Emit } from \"vue-property-decorator\";\r\nimport { DomainRegistry } from \"@/domain\";\r\nimport { FileSizeConverter } from \"@/utilities\";\r\nimport { Folder } from \"@/domain/folder\";\r\nimport Enumerable from \"linq\";\r\n\r\n@Component\r\nexport default class FileUploadDialog extends Mixins() {\r\n @Model(\"input\")\r\n isVisible: boolean;\r\n\r\n @Prop()\r\n folderGuid: string;\r\n\r\n data() {\r\n return {\r\n visible: false,\r\n isUploading: false,\r\n tableData: [] as File[],\r\n selectedFiles: [] as File[],\r\n errorDate: [] as File[],\r\n };\r\n }\r\n visible: boolean;\r\n isUploading: boolean;\r\n tableData: File[];\r\n selectedFiles: File[];\r\n errorDate: File[];\r\n\r\n $refs!: {\r\n input: HTMLInputElement,\r\n };\r\n\r\n addFiles(files: FileList): void {\r\n for (const file of files) {\r\n this.tableData.push(file);\r\n }\r\n this.$refs.input.value = \"\";\r\n }\r\n\r\n toFileSize(size: number): string {\r\n return FileSizeConverter.toString(size);\r\n }\r\n\r\n openDialog(): void {\r\n this.$refs.input.click();\r\n }\r\n\r\n selectionChanged(value: File[]): void {\r\n this.selectedFiles = value;\r\n }\r\n\r\n deleteSelectedFiles(): void {\r\n this.tableData = this.tableData.filter(v => !this.selectedFiles.some(sv => v === sv));\r\n this.selectedFiles = [];\r\n }\r\n\r\n onCancel(): void {\r\n this.visible = false;\r\n }\r\n\r\n async onConfirm(): Promise {\r\n this.isUploading = true;\r\n\r\n // フォルダの合計サイズが変わっているかもしれないのでアップロード時に情報取得\r\n const latestFolder = await this.getLatestFolderInfo(this.folderGuid);\r\n if (!latestFolder) {\r\n this.isUploading = false;\r\n return;\r\n }\r\n // アップロードファイルサイズのチェック\r\n if (this.isOverUploadFileSize(latestFolder)) {\r\n this.isUploading = false;\r\n this.$error(\"アップロード不可\", \"フォルダのサイズが規定値を超えるため、ファイルのアップロードできません。\");\r\n return;\r\n }\r\n \r\n this.uploadFile();\r\n }\r\n\r\n private isOverUploadFileSize(folder: Folder): boolean {\r\n const uploadFileSize = Enumerable.from(this.tableData)\r\n .select(f => f.size).sum();\r\n return (folder.maxSize < (folder.size + uploadFileSize));\r\n }\r\n\r\n private uploadFile(): void {\r\n const file = this.tableData.shift();\r\n this.upload(file.name, file);\r\n }\r\n\r\n private async upload(fileName: string, file: File): Promise {\r\n const repository = DomainRegistry.file.getFileRepository();\r\n try {\r\n await repository.uploadFile(this.folderGuid, fileName, file);\r\n } catch {\r\n this.errorDate.push(file);\r\n }\r\n if (this.tableData.length > 0) {\r\n this.uploadFile();\r\n return;\r\n } \r\n if (this.errorDate.length > 0) {\r\n this.$error(\"ファイルアップロードエラー\", \"ファイルアップロード中にエラーが発生しました。\");\r\n // TODO: エラー発生したファイルを表示する?\r\n }\r\n this.uploaded();\r\n }\r\n\r\n private uploaded(): void {\r\n this.isUploading = false;\r\n this.confirm();\r\n this.visible = false;\r\n }\r\n\r\n async getLatestFolderInfo(folderGuid: string): Promise {\r\n try {\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n return await repository.getFolder(folderGuid);\r\n } catch (e) {\r\n this.$error(\"フォルダ情報取得エラー\", \"フォルダ情報の取得中にエラーが発生しました。\", e);\r\n return null;\r\n }\r\n }\r\n\r\n @Watch(\"isVisible\")\r\n onIsVisibleUpdated(newValue: boolean, oldValue: boolean): void {\r\n this.isUploading = false;\r\n this.tableData = [];\r\n this.selectedFiles = [];\r\n this.errorDate = [];\r\n this.visible = newValue;\r\n }\r\n\r\n @Watch(\"visible\")\r\n onVisibleUpdated(newValue: boolean, oldValue: boolean): void {\r\n this.input(newValue);\r\n }\r\n\r\n @Emit()\r\n confirm(): void {}\r\n\r\n @Emit()\r\n input(value: boolean): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUploadDialog.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUploadDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FileUploadDialog.vue?vue&type=template&id=04b014c2&scoped=true&\"\nimport script from \"./FileUploadDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileUploadDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FileUploadDialog.vue?vue&type=style&index=0&id=04b014c2&lang=scss&scoped=true&\"\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 \"04b014c2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"file-table-selector\"},[_c('el-table',{ref:\"table\",attrs:{\"data\":_vm.files,\"height\":\"100%\",\"empty-text\":\"ファイルなし\"},on:{\"selection-change\":_vm.selectionChanged}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"50\"}}),_c('el-table-column',{attrs:{\"label\":\"ファイル名称\",\"property\":\"name\",\"width\":\"320\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"サイズ\",\"property\":\"size\",\"width\":\"130\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toFileSize(scope.row.size)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"アップロード日時\",\"property\":\"createDateTime\",\"width\":\"160\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toDateString(scope.row.createDateTime)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"アップロード者\",\"property\":\"createUserCode\",\"width\":\"150\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toUploadUserName(scope.row.createUserCode)))])]}}])}),_c('el-table-column')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { FileHeader } from \"@/domain/file\";\r\nimport { ShareDateTranslator } from \"@/infrastructure/folder/translators\";\r\nimport { Component, Mixins, Prop, Emit } from \"vue-property-decorator\";\r\nimport { FileSizeConverter, } from \"@/utilities\";\r\n\r\n@Component\r\nexport default class FileTableSelector extends Mixins() {\r\n @Prop()\r\n files: FileHeader[];\r\n\r\n toFileSize(size: number): string {\r\n return FileSizeConverter.toString(size);\r\n }\r\n\r\n toDateString(date: Date): string {\r\n const dateTranslator = new ShareDateTranslator();\r\n return dateTranslator.toDateTimeDispString(date);\r\n }\r\n\r\n toUploadUserName(userCode: string) {\r\n return !!userCode ? \"管理者\" : \"ゲスト\";\r\n }\r\n\r\n @Emit()\r\n selectionChanged(value: FileHeader[]): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileTableSelector.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileTableSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FileTableSelector.vue?vue&type=template&id=682d3a32&scoped=true&\"\nimport script from \"./FileTableSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileTableSelector.vue?vue&type=script&lang=ts&\"\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 \"682d3a32\",\n null\n \n)\n\nexport default component.exports","\r\nimport { DomainRegistry } from \"@/domain\";\r\nimport { FileHeader } from \"@/domain/file\";\r\nimport { FolderDispInfo } from \"@/domain/folder\";\r\n// import Enumerable from \"linq\";\r\nimport { Component, Mixins } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FileListMixin extends Mixins() {\r\n data(): any {\r\n return {\r\n isLoading: false,\r\n displaySetting: null,\r\n };\r\n }\r\n isLoading: boolean;\r\n displaySetting: FolderDispInfo;\r\n\r\n async created(): Promise {\r\n await this.getDisplaySetting();\r\n }\r\n\r\n async getDisplaySetting(): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n const result = await repository.getFolderDispInfo();\r\n this.isLoading = false;\r\n \r\n this.displaySetting = result;\r\n }\r\n catch (e) {\r\n this.isLoading = false;\r\n this.$error(\"エラー\", \"表示設定の取得に失敗しました。\")\r\n }\r\n }\r\n\r\n async getFileList(folderGuid: string): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.file.getFileRepository();\r\n return await repository.getFileHeaders(folderGuid);\r\n } catch (e) {\r\n this.$error(\"ファイル一覧取得エラー\", \"ファイル一覧の取得中にエラーが発生しました。\", e);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async deleteFile(folderGuid: string, fileId: string): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.file.getFileRepository();\r\n await repository.deleteFile(folderGuid, fileId);\r\n return true;\r\n } catch (e) {\r\n this.$error(\"ファイル削除エラー\", \"ファイル削除中にエラーが発生しました。\", e);\r\n return false;\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n downloadFiles(folderGuid: string): void {\r\n try {\r\n const repository = DomainRegistry.file.getFileRepository();\r\n const url = repository.downloadBatchFiles(folderGuid);\r\n this.downloadFile(url)\r\n } catch (e) {\r\n this.$error(\"一括ダウンロード\", \"一括ダウンロード中にエラーが発生しました。\", e);\r\n }\r\n }\r\n\r\n private downloadFile(url: string): void {\r\n window.location.href = url;\r\n }\r\n}\r\n","var render, staticRenderFns\nimport script from \"./FileListMixin.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileListMixin.vue?vue&type=script&lang=ts&\"\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 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!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListMixin.vue?vue&type=script&lang=ts&\"; 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!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListMixin.vue?vue&type=script&lang=ts&\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { FileHeader } from \"@/domain/file\";\r\nimport { Component, Mixins, Prop, Watch, Emit } from \"vue-property-decorator\";\r\nimport FileUploadDialog from \"./FileUploadDialog.vue\";\r\nimport FileTableSelector from \"./FileTableSelector.vue\";\r\nimport FileListMixin from \"./mixins/FileListMixin.vue\";\r\nimport Enumerable from \"linq\";\r\n\r\n@Component({\r\n components: {\r\n FileUploadDialog,\r\n FileTableSelector,\r\n }\r\n})\r\nexport default class FileListView extends Mixins(FileListMixin) {\r\n @Prop()\r\n folderGuid: string;\r\n\r\n data() {\r\n return {\r\n selectedFiles: [] as FileHeader[],\r\n files: [] as FileHeader[],\r\n isDialogVisible: false,\r\n };\r\n }\r\n selectedFiles: FileHeader[];\r\n files: FileHeader[];\r\n isDialogVisible: boolean;\r\n\r\n $refs!: {\r\n downLoadFiles: HTMLDivElement,\r\n };\r\n\r\n mounted() {\r\n if (this.folderGuid) {\r\n this.updateFileList(this.folderGuid);\r\n }\r\n }\r\n\r\n get downloadEnable(): boolean {\r\n return (0 < this.selectedFiles.length) && (this.selectedFiles.length < this.displaySetting.forceCompressionCount);\r\n }\r\n\r\n get deleteEnable(): boolean {\r\n return (0 < this.selectedFiles.length)\r\n && (!!this.$store.getters.user || Enumerable.from(this.selectedFiles).all(f => !f.createUserCode));\r\n }\r\n\r\n get downloadWarningMessageEnable(): boolean {\r\n return (this.displaySetting.forceCompressionCount <= this.selectedFiles.length);\r\n }\r\n\r\n get downloadWarningMessage(): string {\r\n return \"※\" + this.displaySetting.forceCompressionCount + \"件以上のファイルをダウンロードする場合は全ファイルダウンロードをしてください。\"\r\n }\r\n\r\n @Watch(\"folderGuid\")\r\n onFolderGuidUpdated(newValue: string, oldValue: string): void {\r\n if (!newValue) {\r\n this.files = [];\r\n return;\r\n }\r\n this.updateFileList(newValue);\r\n }\r\n\r\n private updateFileList(folderGuid: string): void {\r\n this.getFileList(folderGuid).then(f => this.files = f);\r\n }\r\n\r\n @Watch(\"files\")\r\n onFilesUpdated(newValue: FileHeader[], oldValue: FileHeader[]): void {\r\n this.selectedFiles = [];\r\n }\r\n\r\n \r\n get warningMessageEnable() : boolean {\r\n return !this.$store.getters.user;\r\n }\r\n \r\n\r\n selectionChanged(value: FileHeader[]): void {\r\n this.selectedFiles = value;\r\n }\r\n\r\n async downLoadFile(): Promise {\r\n for (const c of this.$refs.downLoadFiles.childNodes) {\r\n (c as HTMLAnchorElement).click();\r\n }\r\n }\r\n\r\n async downloadBatchFiles(): Promise {\r\n this.downloadFiles(this.folderGuid);\r\n }\r\n\r\n addFile(): void {\r\n this.isDialogVisible = true;\r\n }\r\n\r\n uploadConfirm(): void {\r\n this.updateFileList(this.folderGuid);\r\n this.filesChanged();\r\n }\r\n\r\n deleteSelectedFile(): void {\r\n this.$confirm(\"削除してもよろしいですか?\", \"ファイル削除\", { confirmButtonText: \"削除\", cancelButtonText: \"取消\" })\r\n .then(async () => {\r\n for (const file of this.selectedFiles) {\r\n if (!(await this.deleteFile(this.folderGuid, file.id))) {\r\n break;\r\n }\r\n }\r\n this.updateFileList(this.folderGuid);\r\n this.filesChanged();\r\n })\r\n .catch(() => {});\r\n }\r\n\r\n @Emit()\r\n filesChanged(): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FileListView.vue?vue&type=template&id=379616ef&scoped=true&\"\nimport script from \"./FileListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./FileListView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FileListView.vue?vue&type=style&index=0&id=379616ef&scoped=true&lang=scss&\"\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 \"379616ef\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:(_vm.separatorStyle),on:{\"mousedown\":function($event){return _vm.onMouseDown($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isTracking),expression:\"isTracking\"}],ref:\"tracker\",staticClass:\"separator-mouse-tracker\",on:{\"mousemove\":_vm.onMouseMove}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins, Model, Prop, Emit } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n})\r\nexport default class Separator extends Mixins() {\r\n @Model(\"input\")\r\n value: number;\r\n\r\n @Prop({ default: false })\r\n isVertical: boolean;\r\n\r\n @Prop({ default: 7 })\r\n width: number;\r\n\r\n data(): any {\r\n return {\r\n trackingSource: 0,\r\n isTracking: false,\r\n };\r\n }\r\n trackingSource: number;\r\n isTracking: boolean;\r\n\r\n get separatorStyle(): any {\r\n const widthAsString = this.width + \"px\";\r\n const lengthAsString = \"100%\";\r\n return {\r\n width: this.isVertical ? lengthAsString : widthAsString,\r\n height: !this.isVertical ? lengthAsString : widthAsString,\r\n cursor: this.isVertical ? \"row-resize\" : \"col-resize\",\r\n };\r\n }\r\n\r\n getClientLength(): number { // 算出プロパティでは値が更新されない\r\n const tracker = this.$refs.tracker as Element;\r\n return this.isVertical\r\n ? tracker.clientHeight\r\n : tracker.clientWidth;\r\n }\r\n\r\n onMouseDown(e: MouseEvent): void {\r\n e.preventDefault(); // 文字選択防止のため通常動作をキャンセル\r\n this.trackingSource = this.value - this.getTrackingOffset(e);\r\n this.isTracking = true;\r\n }\r\n\r\n onMouseMove(e: MouseEvent): void {\r\n this.isTracking = (e.buttons !== 0); // イベントが発生しない場合を考慮しボタン状態で終了判定する\r\n if (this.isTracking) {\r\n this.input(Math.max(Math.min(this.trackingSource + this.getTrackingOffset(e), this.getClientLength()), 0));\r\n }\r\n }\r\n\r\n getTrackingOffset(e: MouseEvent): number {\r\n return this.isVertical\r\n ? e.pageY\r\n : e.pageX;\r\n }\r\n\r\n @Emit()\r\n input(value: number): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Separator.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Separator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Separator.vue?vue&type=template&id=187ac649&scoped=true&\"\nimport script from \"./Separator.vue?vue&type=script&lang=ts&\"\nexport * from \"./Separator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Separator.vue?vue&type=style&index=0&id=187ac649&scoped=true&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 \"187ac649\",\n null\n \n)\n\nexport default component.exports","\r\nimport { DomainRegistry } from \"@/domain\";\r\nimport { Folder } from \"@/domain/folder\";\r\nimport { Component, Mixins } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FolderListMixin extends Mixins() {\r\n data(): any {\r\n return {\r\n isLoading: false,\r\n };\r\n }\r\n isLoading: boolean;\r\n\r\n async getFolderList(): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n return await repository.getFolders();\r\n } catch (e) {\r\n this.$error(\"フォルダ一覧取得エラー\", \"フォルダ一覧の取得中にエラーが発生しました。\", e);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async getFolderInfo(folderGuid: string): Promise {\r\n try {\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n return await repository.getFolder(folderGuid);\r\n } catch (e) {\r\n this.$error(\"フォルダ情報取得エラー\", \"フォルダ情報の取得中にエラーが発生しました。\", e);\r\n return null;\r\n }\r\n }\r\n\r\n async createFolder(folder: Folder): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n await repository.createFolder(folder);\r\n } catch (e) {\r\n this.$error(\"フォルダ追加エラー\", \"フォルダ追加中にエラーが発生しました。\", e);\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async updateFolder(folder: Folder): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n await repository.updateFolder(folder.guid, folder);\r\n } catch (e) {\r\n this.$error(\"フォルダ編集エラー\", \"フォルダ編集中にエラーが発生しました。\", e);\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async deleteFolder(folderGuid: string): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n await repository.deleteFolder(folderGuid);\r\n } catch (e) {\r\n this.$error(\"フォルダ削除エラー\", \"フォルダ削除中にエラーが発生しました。\", e);\r\n this.isLoading = false;\r\n }\r\n }\r\n}\r\n","var render, staticRenderFns\nimport script from \"./FolderListMixin.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderListMixin.vue?vue&type=script&lang=ts&\"\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 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!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderListMixin.vue?vue&type=script&lang=ts&\"; 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!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderListMixin.vue?vue&type=script&lang=ts&\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins, Watch } from \"vue-property-decorator\";\r\nimport FolderTableSelector from \"./FolderTableSelector.vue\";\r\nimport FolderEditDialog from \"./FolderEditDialog.vue\";\r\nimport FileListView from \"../file/FileListView.vue\";\r\nimport Separator from \"../system/Separator.vue\";\r\nimport FolderListMixin from \"./mixins/FolderListMixin.vue\";\r\nimport { Folder } from \"@/domain/folder\";\r\nimport Enumerable from \"linq\";\r\n\r\n@Component({\r\n components: {\r\n FolderTableSelector,\r\n FolderEditDialog,\r\n Separator,\r\n FileListView,\r\n }\r\n})\r\nexport default class FolderListView extends Mixins(FolderListMixin) {\r\n data() {\r\n return {\r\n selectedFolder: null as Folder,\r\n selectorWidth: 650,\r\n folders: [] as Folder[],\r\n isDialogVisible: false,\r\n isDialogEdit: false,\r\n };\r\n }\r\n selectedFolder: Folder;\r\n selectorWidth: number;\r\n folders: Folder[];\r\n isDialogVisible: boolean;\r\n isDialogEdit: boolean;\r\n\r\n created(): void {\r\n this.refresh();\r\n this.setDefaultSelectorWidth();\r\n }\r\n\r\n get selectedGuid(): string {\r\n return !!this.selectedFolder\r\n ? this.selectedFolder.guid\r\n : \"\";\r\n }\r\n\r\n @Watch(\"folders\")\r\n onFoldersUpdated(newValue: Folder[], oldValue: Folder[]): void {\r\n this.selectedFolder = null;\r\n }\r\n\r\n selectionChanged(value: Folder): void {\r\n this.selectedFolder = value;\r\n }\r\n\r\n addFolder(): void {\r\n this.isDialogEdit = false;\r\n this.isDialogVisible = true;\r\n }\r\n\r\n editFolder(): void {\r\n this.isDialogEdit = true;\r\n this.isDialogVisible = true;\r\n }\r\n\r\n refresh(): void {\r\n this.getFolderList().then(l => {\r\n this.folders = Enumerable.from(l)\r\n .orderByDescending(f => f.createDateTime).toArray();\r\n });\r\n }\r\n\r\n filesChanged(): void {\r\n this.getFolderInfo(this.selectedGuid).then((f) => {\r\n // 配列を置き換えると一覧の表示状態もクリアされるため値のみ変更する\r\n const folder = this.folders.find(v => v.guid === f.guid);\r\n if (!folder) {\r\n return;\r\n }\r\n folder.size = f.size;\r\n });\r\n }\r\n\r\n async editConfirm(value: Folder): Promise {\r\n if (this.isDialogEdit) {\r\n await this.updateFolder(value);\r\n } else {\r\n await this.createFolder(value);\r\n }\r\n this.refresh();\r\n }\r\n\r\n deleteSelectedFolder(): void {\r\n this.$confirm(\"削除してもよろしいですか?\", \"フォルダ削除\", { confirmButtonText: \"削除\", cancelButtonText: \"取消\" })\r\n .then(() => {\r\n this.deleteFolder(this.selectedGuid).then(() => {\r\n this.refresh();\r\n });\r\n })\r\n .catch((e) => {\r\n return; // キャンセル\r\n });\r\n }\r\n\r\n private setDefaultSelectorWidth(): void {\r\n this.selectorWidth = Math.max(300, window.innerWidth - 750);\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderListView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderListView.vue?vue&type=template&id=46adaf77&scoped=true&\"\nimport script from \"./FolderListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderListView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FolderListView.vue?vue&type=style&index=0&id=46adaf77&scoped=true&lang=scss&\"\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 \"46adaf77\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"download-history-view-root\"},[_c('div',{staticClass:\"download-history-view-title\"},[_vm._v(\"ダウンロード履歴\")]),_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"download-history-view-content\"},[_c('div',{style:({ width: _vm.selectorWidth + 'px' })},[_c('div',{staticClass:\"folder-list-view-selector-title\"},[_vm._v(\"フォルダ一覧\")]),_c('folder-table-selector',{staticClass:\"folder-list-view-selector\",attrs:{\"folders\":_vm.folders},on:{\"selection-changed\":_vm.selectionChanged}})],1),_c('separator',{staticClass:\"download-history-view-separator\",model:{value:(_vm.selectorWidth),callback:function ($$v) {_vm.selectorWidth=$$v},expression:\"selectorWidth\"}}),_c('div',{staticClass:\"download-file-list-view-content\"},[_c('div',{staticClass:\"download-file-list-view-title\"},[_vm._v(\"ダウンロードファイル履歴\")]),_c('download-file-history-view',{staticClass:\"download-file-history-view\",attrs:{\"folderGuid\":_vm.selectedGuid}})],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',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"download-file-history-view\"},[_c('el-table',{ref:\"table\",attrs:{\"data\":_vm.histories,\"height\":\"100%\",\"empty-text\":\"ダウンロード履歴なし\",\"highlight-current-row\":\"\"}},[_c('el-table-column',{attrs:{\"label\":\"ダウンロード日時\",\"property\":\"dateTime\",\"width\":\"160\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toDateString(scope.row.dateTime)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"ファイル名称\",\"property\":\"fileName\",\"width\":\"160\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"ユーザー名称\",\"property\":\"userName\",\"width\":\"160\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"IPアドレス\",\"property\":\"ipAddress\",\"width\":\"160\",\"sortable\":\"\"}}),_c('el-table-column')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { ShareDateTranslator } from \"@/infrastructure/folder/translators\";\r\nimport { Component, Mixins, Prop, Watch } from \"vue-property-decorator\";\r\nimport { DownloadHistory } from \"@/domain/history\";\r\nimport { DomainRegistry } from \"@/domain\";\r\n\r\n@Component\r\nexport default class DownloadFileHistoryView extends Mixins() {\r\n data() {\r\n return {\r\n isLoading: false,\r\n histories: [] as DownloadHistory[],\r\n };\r\n }\r\n isLoading: boolean;\r\n histories: DownloadHistory[];\r\n\r\n @Prop()\r\n folderGuid: string;\r\n\r\n toDateString(date: Date): string {\r\n const dateTranslator = new ShareDateTranslator();\r\n return dateTranslator.toDateTimeDispString(date);\r\n }\r\n\r\n async getDownloadFileHistories(folderGuid: string): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.history.getHistoryRepository();\r\n return await repository.getDownloadHistories(folderGuid);\r\n } catch (e) {\r\n this.$error(\"ダウンロード履歴取得エラー\", \"ダウンロード履歴一覧の取得中にエラーが発生しました。\", e);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n @Watch(\"folderGuid\")\r\n onFolderGuidChanged(newValue: string, oldValue: string): void {\r\n if (newValue === oldValue) { return; }\r\n if (!newValue) {\r\n this.histories = [];\r\n return;\r\n }\r\n this.getDownloadFileHistories(newValue)\r\n .then(h => this.histories = h);\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadFileHistoryView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadFileHistoryView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DownloadFileHistoryView.vue?vue&type=template&id=57edfa66&scoped=true&\"\nimport script from \"./DownloadFileHistoryView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DownloadFileHistoryView.vue?vue&type=script&lang=ts&\"\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 \"57edfa66\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Folder } from \"@/domain/folder\";\r\nimport Enumerable from \"linq\";\r\nimport { Component, Mixins, Watch } from \"vue-property-decorator\";\r\nimport FolderTableSelector from \"../folder/FolderTableSelector.vue\";\r\nimport { FolderListMixin } from \"../folder/mixins\";\r\nimport Separator from \"../system/Separator.vue\";\r\nimport DownloadFileHistoryView from \"./DownloadFileHistoryView.vue\";\r\n\r\n@Component({\r\n components: {\r\n FolderTableSelector,\r\n Separator,\r\n DownloadFileHistoryView,\r\n }\r\n})\r\nexport default class DownloadHistoryView extends Mixins(FolderListMixin) {\r\n data() {\r\n return {\r\n selectedFolder: null as Folder,\r\n selectorWidth: 650,\r\n folders: [] as Folder[],\r\n };\r\n }\r\n selectedFolder: Folder;\r\n selectorWidth: number;\r\n folders: Folder[];\r\n\r\n created(): void {\r\n this.refresh();\r\n this.setDefaultSelectorWidth();\r\n }\r\n\r\n get selectedGuid(): string {\r\n return !!this.selectedFolder ? this.selectedFolder.guid : \"\";\r\n }\r\n\r\n @Watch(\"folders\")\r\n onFoldersUpdated(newValue: Folder[], oldValue: Folder[]): void {\r\n this.selectedFolder = null;\r\n }\r\n\r\n selectionChanged(value: Folder): void {\r\n this.selectedFolder = value;\r\n }\r\n\r\n refresh(): void {\r\n this.getFolderList().then(l => {\r\n this.folders = Enumerable.from(l)\r\n .orderByDescending(h => h.createDateTime).toArray();\r\n });\r\n }\r\n\r\n private setDefaultSelectorWidth(): void {\r\n this.selectorWidth = Math.max(300, window.innerWidth - 750);\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadHistoryView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadHistoryView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DownloadHistoryView.vue?vue&type=template&id=129a6107&scoped=true&\"\nimport script from \"./DownloadHistoryView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DownloadHistoryView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DownloadHistoryView.vue?vue&type=style&index=0&id=129a6107&scoped=true&lang=scss&\"\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 \"129a6107\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"folder-history-view-root\"},[_c('div',{staticClass:\"folder-history-view-title\"},[_vm._v(\"フォルダ履歴\")]),_c('folder-history-table-view',{staticClass:\"folder-history-list-view\",attrs:{\"histories\":_vm.histories}})],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:\"folder-history-table-view\"},[_c('el-table',{ref:\"table\",attrs:{\"data\":_vm.histories,\"height\":\"100%\",\"empty-text\":\"履歴なし\",\"highlight-current-row\":\"\"}},[_c('el-table-column',{attrs:{\"label\":\"更新日時\",\"property\":\"updateDateTime\",\"width\":\"160\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toDateString(scope.row.updateDateTime)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"アクセスコード\",\"property\":\"password\",\"width\":\"160\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"コメント\",\"property\":\"comment\",\"width\":\"160\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"状態\",\"width\":\"130\",\"sortable\":\"\",\"sort-method\":_vm.sortFolderStatus},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toFolderStatus(scope.row)))])]}}])}),_c('el-table-column',{attrs:{\"label\":\"作成日時\",\"property\":\"createDateTime\",\"width\":\"160\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('div',[_vm._v(_vm._s(_vm.toDateString(scope.row.createDateTime)))])]}}])}),_c('el-table-column')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { FolderHistory } from \"@/domain/history\";\r\nimport { ShareDateTranslator } from \"@/infrastructure/folder/translators\";\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FolderHistoryTableView extends Mixins() {\r\n @Prop()\r\n histories: FolderHistory[];\r\n\r\n toFolderStatus(history: FolderHistory): string {\r\n return history.isDeleted\r\n ? \"削除済み\"\r\n : history.published\r\n ? \"公開中\"\r\n : \"非公開\";\r\n }\r\n\r\n toDateString(date: Date): string {\r\n const dateTranslator = new ShareDateTranslator();\r\n return dateTranslator.toDateTimeDispString(date);\r\n }\r\n\r\n sortFolderStatus(a: FolderHistory, b: FolderHistory): number {\r\n return (a.isDeleted ? 2 : a.published ? 0 : 1) - (b.isDeleted ? 2 : b.published ? 0 : 1);\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderHistoryTableView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderHistoryTableView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderHistoryTableView.vue?vue&type=template&id=7dc83bc8&scoped=true&\"\nimport script from \"./FolderHistoryTableView.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderHistoryTableView.vue?vue&type=script&lang=ts&\"\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 \"7dc83bc8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\r\nimport { DomainRegistry } from \"@/domain\";\r\nimport { FolderHistory } from \"@/domain/history\";\r\nimport { Component, Mixins } from \"vue-property-decorator\";\r\nimport FolderHistoryTableView from \"./FolderHistoryTableView.vue\";\r\n\r\n@Component({\r\n components: {\r\n FolderHistoryTableView,\r\n }\r\n})\r\nexport default class FolderHistoryView extends Mixins() {\r\n data(): any {\r\n return {\r\n isLoading: false,\r\n histories: [] as FolderHistory[],\r\n };\r\n }\r\n isLoading: boolean;\r\n histories: FolderHistory[];\r\n\r\n created(): void {\r\n this.getFolderHistories().then(h => this.histories = h);\r\n }\r\n\r\n // TODO 余裕があるときにフィルタを追加\r\n\r\n async getFolderHistories(): Promise {\r\n try {\r\n this.isLoading = true;\r\n const repository = DomainRegistry.history.getHistoryRepository();\r\n return await repository.getFolderHistories();\r\n } catch (e) {\r\n this.$error(\"フォルダ一覧取得エラー\", \"フォルダ一覧の取得中にエラーが発生しました。\", e);\r\n } finally {\r\n this.isLoading = false;\r\n }\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderHistoryView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderHistoryView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderHistoryView.vue?vue&type=template&id=1e5094fa&scoped=true&\"\nimport script from \"./FolderHistoryView.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderHistoryView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FolderHistoryView.vue?vue&type=style&index=0&id=1e5094fa&scoped=true&lang=scss&\"\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 \"1e5094fa\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport FolderListView from \"../components/folder/FolderListView.vue\";\r\nimport DownloadHistoryView from \"../components/history/DownloadHistoryView.vue\";\r\nimport FolderHistoryView from \"../components/history/FolderHistoryView.vue\";\r\nimport { DomainRegistry } from \"@/domain\";\r\n\r\n@Component({\r\n components: {\r\n FolderListView,\r\n DownloadHistoryView,\r\n FolderHistoryView,\r\n }\r\n})\r\nexport default class Home extends Vue {\r\n data() {\r\n return {\r\n componentKey: \"FolderListView\",\r\n };\r\n }\r\n componentKey: string;\r\n\r\n get userId(): string {\r\n return !!this.$store.getters.user\r\n ? this.$store.getters.user.id\r\n : \"\";\r\n }\r\n\r\n async logout(): Promise {\r\n try {\r\n const service = DomainRegistry.authentication.getAuthenticationService();\r\n await service.logout();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n this.$router.replace(\"/Login\");\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!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; 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!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=45d6bf8a&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=45d6bf8a&scoped=true&lang=scss&\"\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 \"45d6bf8a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isAuthenticating),expression:\"isAuthenticating\"}],staticClass:\"folder-authentication-view-root\"},[_c('div',{staticClass:\"folder-authentication-view-content\"},[_c('div',{staticClass:\"folder-authentication-view-organization-logo\"}),_c('div',{staticClass:\"folder-authentication-view-title-logo\"}),_c('div',{staticClass:\"folder-authentication-view-title\"},[_vm._v(\"共通基盤システム\")]),_c('div',{staticClass:\"folder-authentication-view-title\"},[_vm._v(\"ファイル送受信サービス\")]),_c('div',{staticClass:\"folder-authentication-view-input\"},[_c('label',[_c('span',[_vm._v(\"アクセスコード\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],attrs:{\"type\":\"password\",\"autofocus\":\"\"},domProps:{\"value\":(_vm.password)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.authenticate.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}})])]),_c('div',{staticClass:\"folder-authentication-view-recaptcha\"},[_c('vue-recaptcha',{ref:\"recaptcha\",attrs:{\"sitekey\":_vm.recaptchaKey},on:{\"verify\":_vm.onRecaptchaVerified,\"expired\":_vm.onRecaptchaExpired}})],1),_c('div',{staticClass:\"folder-authentication-view-button\"},[_c('button',{attrs:{\"disabled\":!_vm.isRecaptchaVerified},on:{\"click\":_vm.authenticate}},[_vm._v(\"ログオン\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\nimport { default as VueRecaptcha } from \"vue-recaptcha\";\r\nimport { DomainRegistry } from \"../../domain\";\r\n\r\n@Component({\r\n components: {\r\n VueRecaptcha,\r\n }\r\n})\r\nexport default class FolderAuthenticationView extends Mixins() {\r\n @Prop()\r\n guid: string;\r\n\r\n data(): any {\r\n return {\r\n isAuthenticating: false,\r\n password: null,\r\n recaptchaResponse: null,\r\n };\r\n }\r\n isAuthenticating: boolean;\r\n password: string;\r\n recaptchaResponse: string;\r\n\r\n $refs!: {\r\n recaptcha: VueRecaptcha,\r\n };\r\n\r\n get recaptchaKey(): string {\r\n return this.$configuration.reCaptcha.siteKey;\r\n }\r\n\r\n authenticate(): void {\r\n if (this.isAuthenticating) { return; }\r\n const service = DomainRegistry.folder.getFolderService();\r\n service.authenticate(this.guid, this.password, this.recaptchaResponse)\r\n .then((e) => {\r\n const errorMessage = this.toErrorMessage(e);\r\n if (errorMessage === \"\") {\r\n this.$success(\r\n \"認証成功\",\r\n \"認証しました。\",\r\n );\r\n (this.$el as HTMLElement).focus(); // IEで入力項目にフォーカスが当たったまま遷移した場合、上記カードが消えるまで押せなくなる問題の対応\r\n this.handleAuthenticationSucceeded();\r\n } else {\r\n this.handleAuthenticationFailed(\r\n null,\r\n \"認証失敗\",\r\n errorMessage,\r\n );\r\n }\r\n })\r\n .catch(e => {\r\n this.handleAuthenticationFailed(\r\n e,\r\n \"認証失敗\",\r\n \"認証失敗しました。\",\r\n );\r\n }\r\n );\r\n }\r\n\r\n private toErrorMessage(errorCode: number): string {\r\n switch (errorCode) {\r\n case 1:\r\n return \"該当URLのフォルダは既に削除されています。\";\r\n case 2:\r\n return \"該当URLのフォルダは非公開です。\";\r\n case 3:\r\n return \"URLが違います。\";\r\n case 4:\r\n return \"アクセスコードが違います。\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n get isRecaptchaVerified(): boolean {\r\n return !!this.recaptchaResponse;\r\n }\r\n\r\n onRecaptchaVerified(response: string): void {\r\n this.recaptchaResponse = response;\r\n }\r\n\r\n onRecaptchaExpired(): void {\r\n this.recaptchaResponse = null;\r\n }\r\n\r\n private async handleAuthenticationSucceeded(): Promise {\r\n const destination = this.queryParameterToFirstString(this.$route.query.redirect);\r\n this.$router.replace(destination ? destination : \"/Error\");\r\n }\r\n\r\n private queryParameterToFirstString(value: string | (string | null)[]): string {\r\n return Array.isArray(value)\r\n ? ((0 < value.length) ? value[0] : null)\r\n : value;\r\n }\r\n\r\n private handleAuthenticationFailed(error: Error, title: string, message: string): void {\r\n this.password = \"\";\r\n this.$refs.recaptcha.reset();\r\n this.$error(\r\n title,\r\n message,\r\n error,\r\n );\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderAuthenticationView.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderAuthenticationView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderAuthenticationView.vue?vue&type=template&id=5fe99924&scoped=true&\"\nimport script from \"./FolderAuthenticationView.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderAuthenticationView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FolderAuthenticationView.vue?vue&type=style&index=0&id=5fe99924&lang=scss&scoped=true&\"\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 \"5fe99924\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',[_vm._v(\"エラーによって処理を中断しました。\")]),_c('p',[_vm._v(\" 本画面が表示される場合はシステム管理者に連絡してください。 \")]),_c('p',[_vm._v(\" URL: \"),(_vm.isDeveloperMode)?_c('a',{attrs:{\"href\":_vm.url}},[_vm._v(_vm._s(_vm.url))]):_c('span',[_vm._v(_vm._s(_vm.url))])]),_c('p',[_vm._v(\" 内容: \"+_vm._s(_vm.message)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n }\r\n})\r\nexport default class ErrorView extends Mixins() {\r\n @Prop()\r\n url: string;\r\n\r\n @Prop()\r\n message: string;\r\n\r\n created(): void {\r\n console.error(\"エラーによって処理を中断しました。\");\r\n console.error(this.url);\r\n console.error(this.message);\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!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorView.vue?vue&type=script&lang=ts&\"; 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!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ErrorView.vue?vue&type=template&id=34ae7955&scoped=true&\"\nimport script from \"./ErrorView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErrorView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ErrorView.vue?vue&type=style&index=0&id=34ae7955&scoped=true&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 \"34ae7955\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport VueRouter, { RouteConfig } from \"vue-router\";\r\nimport LoginView from \"../components/authentication/LoginView.vue\";\r\nimport Home from \"../components/Home.vue\";\r\nimport FolderAuthenticationView from \"../components/authentication/FolderAuthenticationView.vue\";\r\nimport FileListView from \"../components/file/FileListView.vue\";\r\nimport ErrorView from \"../components/ErrorView.vue\";\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes: Array = [\r\n {\r\n path: \"/Login\",\r\n name: \"ログイン\",\r\n component: LoginView,\r\n props: r => ({\r\n redirect: r.query.redirect,\r\n })\r\n },\r\n {\r\n path: \"/\",\r\n name: \"Home\",\r\n component: Home,\r\n meta: { requiresAuth: true }\r\n },\r\n {\r\n path: \"/Authentication\",\r\n name: \"Authentication\",\r\n component: FolderAuthenticationView,\r\n props: r => ({\r\n guid: r.query.guid,\r\n redirect: r.query.redirect,\r\n })\r\n },\r\n {\r\n path: \"/FileList\",\r\n name: \"FileList\",\r\n component: FileListView,\r\n meta: { requiresFolderAuth: true },\r\n props: r => ({\r\n folderGuid: r.query.folderGuid,\r\n })\r\n },\r\n {\r\n path: \"/Error\",\r\n name: \"Error\",\r\n component: ErrorView,\r\n }\r\n];\r\n\r\nconst router = new VueRouter({\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes\r\n});\r\n\r\nexport default router;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tooltip',{attrs:{\"placement\":\"right\"}},[_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_vm._v(_vm._s(_vm.detail))]),_c('div',{on:{\"click\":_vm.click}},[_vm._v(_vm._s(_vm.overview))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\r\nimport { Component, Mixins, Prop, Emit } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n})\r\nexport default class NotImplementedComponent extends Mixins() {\r\n @Prop({ default: () => \"まだ実装されてません。\" })\r\n overview: string;\r\n\r\n @Prop({ default: () => \"まだ実装されてません。\" })\r\n detail: string;\r\n\r\n @Emit()\r\n click(value: any): void {}\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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotImplementedComponent.vue?vue&type=script&lang=ts&\"; 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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotImplementedComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotImplementedComponent.vue?vue&type=template&id=4ff31801&scoped=true&\"\nimport script from \"./NotImplementedComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotImplementedComponent.vue?vue&type=script&lang=ts&\"\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 \"4ff31801\",\n null\n \n)\n\nexport default component.exports","import { LoggerFactory } from \"../../../utilities/logger\";\r\n\r\nexport class WindowOpener {\r\n static open(from: string, to: string, parameters: { [key: string]: string } = {}): void {\r\n const url = WindowOpener.toUrl(to, parameters);\r\n this.openWindow(url);\r\n }\r\n\r\n static openWindow(url: string): void {\r\n this._logger.debug(\"新しいWindowをopenします.\");\r\n this._logger.debug(url);\r\n window.open(url, \"\");\r\n }\r\n\r\n private static toUrl(location: string, parameters: { [key: string]: string }): string {\r\n return location + WindowOpener.toParametersAsString(parameters);\r\n }\r\n\r\n private static toParametersAsString(parameters: { [key: string]: string }): string {\r\n const expressions = WindowOpener.toParameterExpressions(parameters);\r\n return (0 < expressions.length)\r\n ? \"?\" + expressions.join(\"&\")\r\n : \"\";\r\n }\r\n\r\n private static toParameterExpressions(parameters: { [key: string]: string }): string[] {\r\n const results = [];\r\n for (const key of Object.keys(parameters)) {\r\n const value = parameters[key];\r\n if (!value || (value === \"\")) {\r\n continue;\r\n }\r\n results.push(key + \"=\" + parameters[key]);\r\n }\r\n return results;\r\n }\r\n\r\n private static readonly _logger = LoggerFactory.getLogger();\r\n}\r\n","import Vue from \"vue\";\r\nimport App from \"./components/App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport { Route } from \"vue-router\";\r\nimport { DomainRegistry } from \"./domain\";\r\nimport { IConfiguration } from \"./domain/configuration\";\r\nimport { SessionStorageAccessor } from \"./store/SessionStorageAccessor\";\r\nimport { ILogger, LoggerFactory } from \"./utilities/logger\";\r\n\r\n// Logger\r\nLoggerFactory.initialize(); // 一旦デフォルトで初期化.\r\nconst logger = LoggerFactory.getLogger();\r\n\r\nrouter.beforeEach(async (to, from, next) => {\r\n logger.info(\"ルーティング開始.\");\r\n logger.info(to.fullPath);\r\n logger.debug(\"from \" + from.fullPath);\r\n if (to.path === \"/Error\") {\r\n if (from.path === \"/Error\") {\r\n // replaceしてるので遷移前の画面で連続してエラーが発生した場合、エラー画面からの遷移になる模様.\r\n // 先のエラーを優先して表示する.\r\n logger.warn(\"Error画面表示中の更なるエラー.最初の表示優先でルーティング中断.\");\r\n next(false);\r\n return;\r\n }\r\n } else {\r\n/*\r\n if (!store.getters.configuration) {\r\n next({\r\n path: \"/Error\",\r\n query: {\r\n url: to.fullPath,\r\n }\r\n });\r\n }\r\n*/\r\n }\r\n\r\n if (!store.getters.token && SessionStorageAccessor.token && SessionStorageAccessor.user) {\r\n store.commit(\"setToken\", SessionStorageAccessor.token);\r\n store.commit(\"setUser\", SessionStorageAccessor.user);\r\n }\r\n // ログイン画面へのリダイレクト.下記参考.\r\n // https://qiita.com/takatama/items/05e9fbc7199cde4caf60\r\n if (to.matched.some(record => record.meta.requiresAuth) && !isAlreadyLogined()) {\r\n logger.info(\"ログイン画面へリダイレクト.\");\r\n const query = createRedirectQuery(to);\r\n next({\r\n path: \"/Login\",\r\n query,\r\n replace: true,\r\n });\r\n return;\r\n }\r\n if (to.matched.some(record => record.meta.requiresFolderAuth)\r\n && !isAlreadyFolderLogined(to.query.folderGuid as string)) {\r\n if (!(to.query.token as string)) {\r\n logger.info(\"フォルダ認証画面へリダイレクト.\");\r\n const query = createRedirectQuery(to);\r\n query.guid = to.query.folderGuid as string; \r\n next({\r\n path: \"/Authentication\",\r\n query,\r\n replace: true,\r\n });\r\n return;\r\n } else {\r\n // トークンからログイン情報を取得してstoreに登録\r\n const folderGuid = to.query.folderGuid as string;\r\n store.commit(\"setToken\", to.query.token);\r\n const repository = DomainRegistry.folder.getFolderRepository();\r\n const result = await repository.getFolderAuthenticationInfo(folderGuid);\r\n // ゲストの場合もあるのでフォルダ操作可能なユーザーの場合だけstoreにセット\r\n if (result.user && result.user.id) { store.commit(\"setUser\", result.user); }\r\n store.commit(\"setFolderGuid\", folderGuid);\r\n }\r\n }\r\n\r\n logger.info(\"ルーティングされた画面へ.\");\r\n next();\r\n});\r\n\r\nfunction isAlreadyLogined(): boolean {\r\n return !!store.getters.token\r\n && !!store.getters.user;\r\n}\r\n\r\nfunction isAlreadyFolderLogined(folderGuid: string): boolean {\r\n return !!store.getters.token\r\n && (store.getters.folderGuid === folderGuid);\r\n}\r\n\r\nfunction createRedirectQuery(to: Route): { [key: string]: string } {\r\n const query: { [key: string]: string } = {};\r\n const redirectUrl = to.fullPath;\r\n if (redirectUrl && redirectUrl !== \"/\") {\r\n query.redirect = redirectUrl;\r\n }\r\n return query;\r\n}\r\n\r\nVue.config.productionTip = false;\r\n\r\nimport ElementUI from \"element-ui\";\r\n// import \"element-ui/lib/theme-chalk/index.css\";\r\nimport \"./forked-libs/element-ui/lib/theme/index.scss\"; // カスタムテーマを使用\r\nVue.use(ElementUI);\r\n\r\n// グローバルコンポーネント.\r\n// import Tooltip from \"./components/system/Tooltip.vue\";\r\n// Vue.component(\"tooltip\", Tooltip);\r\nimport NotImplemented from \"./components/system/NotImplementedComponent.vue\";\r\nVue.component(\"notImplemented\", NotImplemented);\r\n\r\n// カスタムメソッド追加.\r\nimport { WindowOpener } from \"./components/system/utilities/WindowOpener\";\r\nVue.prototype.$openWindow = function(location: string, parameters: { [key: string]: string } = {}): void {\r\n WindowOpener.open(this.$route.path, location, parameters);\r\n};\r\nimport { AsyncUtility } from \"./utilities\";\r\nVue.prototype.$wait = async function(isCompleted: () => boolean, pollingIntervalAsMsec: number = 100) {\r\n await AsyncUtility.wait(isCompleted, pollingIntervalAsMsec);\r\n};\r\nVue.prototype.$sleep = async function(ms: number) {\r\n await AsyncUtility.sleep(ms);\r\n};\r\nVue.prototype.$success = function(title: string, message: string, onClose: () => void = undefined): void {\r\n console.log(title);\r\n console.log(message);\r\n setTimeout(() => {\r\n this.$notify.success({\r\n title,\r\n message,\r\n position: \"top-left\",\r\n duration: 3000,\r\n onClose,\r\n });\r\n }, 1);\r\n};\r\nVue.prototype.$successAsHTML = function(title: string, message: string): void {\r\n console.log(title);\r\n console.log(message);\r\n setTimeout(() => {\r\n this.$notify.success({\r\n title,\r\n message,\r\n dangerouslyUseHTMLString: true,\r\n position: \"top-left\",\r\n duration: 3000,\r\n });\r\n }, 1);\r\n};\r\nVue.prototype.$info = function(title: string, message: string): void {\r\n console.info(title);\r\n console.info(message);\r\n setTimeout(() => {\r\n this.$notify.info({\r\n title,\r\n message,\r\n position: \"top-left\",\r\n duration: 0\r\n });\r\n }, 1);\r\n};\r\nVue.prototype.$warn = function(title: string, message: string, onClose: () => void = undefined): void {\r\n console.warn(title);\r\n console.warn(message);\r\n setTimeout(() => {\r\n this.$notify({\r\n title,\r\n message,\r\n position: \"top-left\",\r\n duration: 5000,\r\n onClose,\r\n type: \"warning\",\r\n });\r\n }, 1);\r\n};\r\nVue.prototype.$error = function(title: string, message: string, reason: any = undefined): void {\r\n console.error(title);\r\n console.error(message);\r\n if (reason) {\r\n console.error(reason);\r\n }\r\n setTimeout(() => {\r\n this.$notify.error({\r\n title,\r\n message,\r\n position: \"top-left\",\r\n duration: 0\r\n });\r\n }, 1);\r\n};\r\nVue.prototype.$fatal = function(title: string, message: string, reason: any = undefined): void {\r\n console.error(title);\r\n console.error(message);\r\n if (reason) {\r\n console.error(reason);\r\n }\r\n this.$router.replace({\r\n path: \"/Error\",\r\n query: {\r\n url: location.href,\r\n message,\r\n },\r\n });\r\n};\r\nVue.prototype.$notImplemented = function(message: string): void {\r\n console.error(\"未実装です。\");\r\n setTimeout(() => {\r\n this.$notify.error({\r\n title: \"未実装です。\",\r\n message: !!message ? message : \"実装したらこの通知の実装は削除してください。\",\r\n position: \"top-left\",\r\n duration: 3000\r\n });\r\n }, 1);\r\n};\r\nVue.prototype.$logger = LoggerFactory.getLogger();\r\nVue.prototype.$findAncestor = function(predicate: (s: Vue) => boolean): Vue {\r\n let ancestor = null as Vue;\r\n for (ancestor = this.$parent; (ancestor && !predicate(ancestor)); ancestor = ancestor.$parent) {\r\n }\r\n return ancestor;\r\n};\r\nVue.prototype.$doWhenValid = function(process: (i: T) => void, instance: T, ...instances: any[]): void {\r\n if (instance && Enumerable.from(instances).all(i => !!i)) {\r\n process(instance);\r\n }\r\n};\r\nObject.defineProperty(Vue.prototype, \"$configuration\", {\r\n get: function $configuration(): IConfiguration {\r\n return this.$store.getters.configuration as IConfiguration;\r\n }\r\n});\r\n\r\nimport { LoadingServiceOptions, ElLoadingComponent } from \"element-ui/types/loading\";\r\nimport { ElMessageBox, ElMessageBoxShortcutMethod } from \"element-ui/types/message-box\";\r\nimport { ElNotification } from \"element-ui/types/notification\";\r\nimport { ElMessage } from \"element-ui/types/message\";\r\nimport Enumerable from \"linq\";\r\ndeclare module \"vue/types/vue\" {\r\n interface Vue {\r\n $openWindow: (location: string, parameters?: { [key: string]: string }) => void;\r\n $wait: (isCompleted: () => boolean, pollingIntervalAsMsec?: number) => Promise;\r\n $sleep: (ms: number) => Promise;\r\n $success: (title: string, message: string, onClose?: () => void) => void;\r\n $successAsHTML: (title: string, message: string) => void;\r\n $info: (title: string, message: string) => void;\r\n $warn: (title: string, message: string, onClose?: () => void) => void;\r\n $error: (title: string, message: string, reason?: any) => void;\r\n $fatal: (title: string, message: string, reason?: any) => void;\r\n $notImplemented: (message?: string) => void;\r\n $logger: ILogger;\r\n $findAncestor: (predicate: (s: Vue) => boolean) => Vue;\r\n $doWhenValid: (process: (i: T) => void, instance: T, ...instances: any[]) => void;\r\n $loading: (options: LoadingServiceOptions) => ElLoadingComponent;\r\n $msgbox: ElMessageBox;\r\n $alert: ElMessageBoxShortcutMethod;\r\n $confirm: ElMessageBoxShortcutMethod;\r\n $prompt: ElMessageBoxShortcutMethod;\r\n $notify: ElNotification;\r\n $message: ElMessage;\r\n $configuration: IConfiguration;\r\n }\r\n}\r\ninitializeApplication()\r\n.then(() => {\r\n /* eslint-disable no-new */\r\n new Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n }).$mount(\"#app\");\r\n});\r\n\r\nasync function initializeApplication(): Promise {\r\n try {\r\n await loadConfiguration();\r\n } catch (e) {\r\n logger.warn(\"設定の取得に失敗.\");\r\n }\r\n}\r\n\r\nasync function loadConfiguration(): Promise {\r\n if (store.getters.configuration) {\r\n logger.info(\"既にstoreに格納されてる設定を利用します.\");\r\n return;\r\n }\r\n const service = DomainRegistry.configuration.getConfigurationService();\r\n await service.load();\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderEditDialog.vue?vue&type=style&index=0&id=18644200&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=style&index=0&id=454b5a23&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUploadDialog.vue?vue&type=style&index=0&id=04b014c2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.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!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadHistoryView.vue?vue&type=style&index=0&id=129a6107&scoped=true&lang=scss&\""],"sourceRoot":""}