pleroma/priv/static/adminfe/static/js/chunk-55a2.a1fd0cc3.js.map
2022-11-22 23:53:01 +01:00

1 line
31 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/views/chats/show.vue?2c94","webpack:///./src/views/chats/show.vue?3865","webpack:///./src/components/ChatMessage/index.vue?43f7","webpack:///src/components/ChatMessage/index.vue","webpack:///./src/components/ChatMessage/index.vue","webpack:///./src/components/ChatMessage/index.vue?f52c","webpack:///./src/views/chats/show.vue?f0aa","webpack:///src/views/chats/show.vue","webpack:///./src/views/chats/show.vue","webpack:///./src/components/RebootButton/index.vue?d5b4","webpack:///./src/components/RebootButton/index.vue?2f45","webpack:///src/components/RebootButton/index.vue","webpack:///./src/components/RebootButton/index.vue","webpack:///./src/components/ChatMessage/index.vue?d5c5"],"names":["__webpack_require__","components_ChatMessagevue_type_script_lang_js_","name","props","message","type","required","author","page","default","data","methods","propertyExists","account","property","parseTimestamp","timestamp","luxon","fromISO","toFormat","deleteMessage","_this","this","$confirm","confirmButtonText","cancelButtonText","then","$store","dispatch","chat_id","message_id","$message","catch","handleRouteChange","$router","push","params","id","ChatMessage","Object","componentNormalizer","_vm","_c","_self","deleted","_e","staticClass","attrs","slot","to","nativeOn","click","$event","stopPropagation","src","avatar","_v","_s","username","$t","created_at","trigger","plain","size","icon","domProps","innerHTML","content","attachment","preview_url","chats_showvue_type_script_lang_js_","components","RebootButton","computed","isDesktop","state","app","device","isMobile","isTablet","allLoaded","chat","buttonLoading","loading","fetchedChat","chatMessages","fetchedChatMessages","beforeMount","$route","getAuthor","account_id","sender","receiver","handleLoadMore","max_id","pop","show_component","display_name","href","url","target","title","_l","key","length","circle","on","__webpack_exports__","components_RebootButtonvue_type_script_lang_js_","needReboot","restartApp","asyncToGenerator_default","regenerator_default","a","mark","_callee","wrap","_context","prev","next","t0","abrupt","stop","component","placement"],"mappings":"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","file":"static/js/chunk-55a2.a1fd0cc3.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./show.vue?vue&type=style&index=0&id=d1f150c0&prod&rel=stylesheet%2Fscss&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"chat-show-container\"},[_c('header',{staticClass:\"chat-page-header\"},[_c('h1',[_vm._v(\"\\n \"+_vm._s(_vm.$t('chats.chatHistory'))+\":\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"chat-card-participants\"},[_c('div',{staticClass:\"chat-particiants-sender\"},[_c('div',{staticClass:\"avatar-name-container\"},[(_vm.propertyExists(_vm.chat.sender, 'avatar'))?_c('el-avatar',{attrs:{\"src\":_vm.chat.sender.avatar,\"size\":\"large\"}}):_vm._e(),_vm._v(\" \"),(_vm.propertyExists(_vm.chat.sender, 'display_name'))?_c('h1',{staticClass:\"particiant-display-name\"},[_vm._v(_vm._s(_vm.chat.sender.display_name))]):_c('h1',{staticClass:\"particiant-display-name invalid\"},[_vm._v(\"(\"+_vm._s(_vm.$t('users.invalidNickname'))+\")\")]),_vm._v(\" \"),(_vm.propertyExists(_vm.chat.sender, 'url'))?_c('a',{attrs:{\"href\":_vm.chat.sender.url,\"target\":\"_blank\"}},[_c('i',{staticClass:\"el-icon-top-right\",attrs:{\"title\":_vm.$t('userProfile.openAccountInInstance')}})]):_vm._e()],1)]),_vm._v(\" \"),_c('div',{staticClass:\"chat-particiants-receiver\"},[_c('div',{staticClass:\"avatar-name-container\"},[(_vm.propertyExists(_vm.chat.receiver, 'avatar'))?_c('el-avatar',{attrs:{\"src\":_vm.chat.receiver.avatar,\"size\":\"large\"}}):_vm._e(),_vm._v(\" \"),(_vm.propertyExists(_vm.chat.receiver, 'display_name'))?_c('h1',{staticClass:\"particiant-display-name\"},[_vm._v(_vm._s(_vm.chat.receiver.display_name))]):_c('h1',{staticClass:\"particiant-display-name invalid\"},[_vm._v(\"(\"+_vm._s(_vm.$t('users.invalidNickname'))+\")\")]),_vm._v(\" \"),(_vm.propertyExists(_vm.chat.receiver, 'url'))?_c('a',{attrs:{\"href\":_vm.chat.receiver.url,\"target\":\"_blank\"}},[_c('i',{staticClass:\"el-icon-top-right\",attrs:{\"title\":_vm.$t('userProfile.openAccountInInstance')}})]):_vm._e()],1)])])]),_vm._v(\" \"),(_vm.isMobile)?_c('div',{staticClass:\"chat-page-header-container\"},[_c('header',{staticClass:\"chat-page-header\"},[_c('div',{staticClass:\"avatar-name-container\"}),_vm._v(\" \"),_c('reboot-button')],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"chat-messages-container\"},[(!_vm.loading)?_c('el-timeline',{staticClass:\"messages\"},[_vm._l((_vm.chatMessages),function(message){return _c('el-timeline-item',{key:message.id},[_c('chat-message',{attrs:{\"message\":message,\"author\":_vm.getAuthor(message.account_id)}})],1)}),_vm._v(\" \"),(_vm.chatMessages.length === 0)?_c('p',{staticClass:\"no-messages\"},[_vm._v(_vm._s(_vm.$t('userProfile.noMessages')))]):_vm._e(),_vm._v(\" \"),(_vm.chatMessages.length === 20)?_c('div',{staticClass:\"statuses-pagination\"},[(!_vm.allLoaded)?_c('el-button',{attrs:{\"loading\":_vm.buttonLoading},on:{\"click\":_vm.handleLoadMore}},[_vm._v(_vm._s(_vm.$t('statuses.loadMore')))]):_c('el-button',{attrs:{\"icon\":\"el-icon-check\",\"circle\":\"\"}})],1):_vm._e()],2):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\n <el-card v-if=\"!message.deleted\" class=\"message-card\">\n <div slot=\"header\">\n <div class=\"message-header\">\n <div class=\"message-meta\">\n <router-link\n v-if=\"propertyExists(author, 'id')\"\n :to=\"{ name: 'UsersShow', params: { id: author.id }}\"\n class=\"router-link\"\n @click.native.stop>\n <div class=\"message-author\">\n <img v-if=\"propertyExists(author, 'avatar')\" :src=\"author.avatar\" class=\"message-author-avatar-img\">\n <span v-if=\"propertyExists(author, 'username')\" class=\"message-author-name\">{{ author.username }}</span>\n <span v-else>\n <span v-if=\"propertyExists(author, 'username')\" class=\"message-author-name\">\n {{ author.username }}\n </span>\n <span v-else class=\"message-author-name deactivated\">({{ $t('users.invalidNickname') }})</span>\n </span>\n </div>\n </router-link>\n <span class=\"message-timestamp\">{{ parseTimestamp(message.created_at) }}</span>\n </div>\n <div class=\"message-actions\">\n <el-dropdown trigger=\"click\" @click.native.stop>\n <el-button plain size=\"small\" icon=\"el-icon-edit\" class=\"status-actions-button\">\n {{ $t('reports.messageModeration') }}<i class=\"el-icon-arrow-down el-icon--right\"/>\n </el-button>\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item\n @click.native=\"deleteMessage()\">\n {{ $t('reports.deleteMessage') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"handleRouteChange()\">\n {{ $t('users.moderateUser') }}\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n </div>\n </div>\n </div>\n <div class=\"message-body\">\n <span class=\"message-content\" v-html=\"message.content\"/>\n <div v-if=\"message.attachment\" class=\"image\">\n <img :src=\"message.attachment.preview_url\">\n </div>\n </div>\n </el-card>\n\n</template>\n\n<script>\nimport { DateTime } from 'luxon'\nexport default {\n name: 'ChatMessage',\n props: {\n message: {\n type: Object,\n required: true\n },\n author: {\n type: Object,\n required: true\n },\n page: {\n type: Number,\n required: false,\n default: 0\n }\n },\n data() {\n return {\n }\n },\n methods: {\n propertyExists(account, property) {\n return account[property]\n },\n parseTimestamp(timestamp) {\n return DateTime.fromISO(timestamp).toFormat('yyyy-MM-dd HH:mm')\n },\n deleteMessage() {\n this.$confirm('Are you sure you want to delete this message?', 'Warning', {\n confirmButtonText: 'OK',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('DeleteMessage', {\n chat_id: this.message.chat_id,\n message_id: this.message.id\n })\n this.$message({\n type: 'success',\n message: 'Delete completed'\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: 'Delete canceled'\n })\n })\n },\n handleRouteChange() {\n this.$router.push({ name: 'UsersShow', params: { id: this.author.id }})\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.message-card {\n margin-bottom: 10px;\n .account {\n line-height: 26px;\n font-size: 13px;\n color: #606266;\n }\n .account:hover {\n text-decoration: underline;\n }\n .deactivated {\n color: gray;\n line-height: 28px;\n vertical-align: middle;\n }\n .image {\n width: 20%;\n img {\n width: 100%;\n }\n }\n .router-link {\n text-decoration: none;\n }\n .show-more-button {\n margin-left: 5px;\n }\n .message-author {\n display: flex;\n align-items: center;\n }\n .message-author-avatar-img {\n display: inline-block;\n width: 15px;\n height: 15px;\n margin-right: 5px;\n }\n .message-author-name {\n display: inline-block;\n margin: 0;\n font-size: 15px;\n font-weight: 500;\n }\n .message-body {\n display: flex;\n flex-direction: column;\n }\n .message-card-header {\n display: flex;\n align-items: center;\n }\n\n .chat-content {\n font-size: 15px;\n line-height: 26px;\n }\n .message-timestamp {\n font-size: 13px;\n color: #606266;\n margin-left: 20px;\n }\n .message-deleted {\n font-style: italic;\n margin-top: 3px;\n }\n .message-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n .message-meta {\n display: flex;\n justify-content: flex-start;\n align-items: flex-end;\n }\n }\n\n}\n\n@media only screen and (max-width:480px) {\n .el-message {\n min-width: 80%;\n }\n .el-message-box {\n width: 80%;\n }\n .message-card {\n .el-card__header {\n padding: 10px 17px;\n }\n .el-tag {\n margin: 3px 0;\n }\n .message-author-container {\n margin-bottom: 5px;\n }\n .message-action-buttons {\n margin: 3px 0 3px;\n }\n .message-actions {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n }\n .message-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n }\n .message-actions-button {\n margin: 3px 0 3px;\n }\n .message-actions {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=16797c40&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=16797c40&prod&rel=stylesheet%2Fscss&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 render(){var _vm=this,_c=_vm._self._c;return (!_vm.message.deleted)?_c('el-card',{staticClass:\"message-card\"},[_c('div',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('div',{staticClass:\"message-header\"},[_c('div',{staticClass:\"message-meta\"},[(_vm.propertyExists(_vm.author, 'id'))?_c('router-link',{staticClass:\"router-link\",attrs:{\"to\":{ name: 'UsersShow', params: { id: _vm.author.id }}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"message-author\"},[(_vm.propertyExists(_vm.author, 'avatar'))?_c('img',{staticClass:\"message-author-avatar-img\",attrs:{\"src\":_vm.author.avatar}}):_vm._e(),_vm._v(\" \"),(_vm.propertyExists(_vm.author, 'username'))?_c('span',{staticClass:\"message-author-name\"},[_vm._v(_vm._s(_vm.author.username))]):_c('span',[(_vm.propertyExists(_vm.author, 'username'))?_c('span',{staticClass:\"message-author-name\"},[_vm._v(\"\\n \"+_vm._s(_vm.author.username)+\"\\n \")]):_c('span',{staticClass:\"message-author-name deactivated\"},[_vm._v(\"(\"+_vm._s(_vm.$t('users.invalidNickname'))+\")\")])])])]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"message-timestamp\"},[_vm._v(_vm._s(_vm.parseTimestamp(_vm.message.created_at)))])],1),_vm._v(\" \"),_c('div',{staticClass:\"message-actions\"},[_c('el-dropdown',{attrs:{\"trigger\":\"click\"},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_c('el-button',{staticClass:\"status-actions-button\",attrs:{\"plain\":\"\",\"size\":\"small\",\"icon\":\"el-icon-edit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('reports.messageModeration'))),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})]),_vm._v(\" \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.deleteMessage()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('reports.deleteMessage'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleRouteChange()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderateUser'))+\"\\n \")])],1)],1)],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"message-body\"},[_c('span',{staticClass:\"message-content\",domProps:{\"innerHTML\":_vm._s(_vm.message.content)}}),_vm._v(\" \"),(_vm.message.attachment)?_c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":_vm.message.attachment.preview_url}})]):_vm._e()])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./show.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./show.vue?vue&type=script&lang=js&\"","<template>\n <div v-if=\"!loading\" class=\"chat-show-container\">\n <header class=\"chat-page-header\">\n <h1>\n {{ $t('chats.chatHistory') }}:\n </h1>\n <div class=\"chat-card-participants\">\n <div class=\"chat-particiants-sender\">\n <div class=\"avatar-name-container\">\n <el-avatar v-if=\"propertyExists(chat.sender, 'avatar')\" :src=\"chat.sender.avatar\" size=\"large\" />\n <h1 v-if=\"propertyExists(chat.sender, 'display_name')\" class=\"particiant-display-name\">{{ chat.sender.display_name }}</h1>\n <h1 v-else class=\"particiant-display-name invalid\">({{ $t('users.invalidNickname') }})</h1>\n <a v-if=\"propertyExists(chat.sender, 'url')\" :href=\"chat.sender.url\" target=\"_blank\">\n <i :title=\"$t('userProfile.openAccountInInstance')\" class=\"el-icon-top-right\"/>\n </a>\n </div>\n </div>\n <div class=\"chat-particiants-receiver\">\n <div class=\"avatar-name-container\">\n <el-avatar v-if=\"propertyExists(chat.receiver, 'avatar')\" :src=\"chat.receiver.avatar\" size=\"large\" />\n <h1 v-if=\"propertyExists(chat.receiver, 'display_name')\" class=\"particiant-display-name\">{{ chat.receiver.display_name }}</h1>\n <h1 v-else class=\"particiant-display-name invalid\">({{ $t('users.invalidNickname') }})</h1>\n <a v-if=\"propertyExists(chat.receiver, 'url')\" :href=\"chat.receiver.url\" target=\"_blank\">\n <i :title=\"$t('userProfile.openAccountInInstance')\" class=\"el-icon-top-right\"/>\n </a>\n </div>\n </div>\n </div>\n </header>\n <div v-if=\"isMobile\" class=\"chat-page-header-container\">\n <header class=\"chat-page-header\">\n <div class=\"avatar-name-container\"/>\n <reboot-button/>\n </header>\n </div>\n\n <div class=\"chat-messages-container\">\n\n <el-timeline v-if=\"!loading\" class=\"messages\">\n <el-timeline-item v-for=\"message in chatMessages\" :key=\"message.id\">\n <chat-message :message=\"message\" :author=\"getAuthor(message.account_id)\"/>\n </el-timeline-item>\n <p v-if=\"chatMessages.length === 0\" class=\"no-messages\">{{ $t('userProfile.noMessages') }}</p>\n <div v-if=\"chatMessages.length === 20\" class=\"statuses-pagination\">\n <el-button v-if=\"!allLoaded\" :loading=\"buttonLoading\" @click=\"handleLoadMore\">{{ $t('statuses.loadMore') }}</el-button>\n <el-button v-else icon=\"el-icon-check\" circle/>\n </div>\n </el-timeline>\n </div>\n\n </div>\n</template>\n\n<script>\nimport ChatMessage from '@/components/ChatMessage'\nimport RebootButton from '@/components/RebootButton'\n\nexport default {\n name: 'ChatShow',\n components: { RebootButton, ChatMessage },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n allLoaded() {\n return this.$store.state.chat.allLoaded\n },\n buttonLoading() {\n return this.$store.state.chat.buttonLoading\n },\n loading() {\n return this.$store.state.chat.loading\n },\n chat() {\n return this.$store.state.chat.fetchedChat\n },\n chatMessages() {\n return this.$store.state.chat.fetchedChatMessages\n }\n },\n beforeMount: function() {\n this.$store.dispatch('HandlePageChange', null)\n this.$store.dispatch('NeedReboot')\n this.$store.dispatch('GetNodeInfo')\n this.$store.dispatch('FetchChat', this.$route.params.id)\n this.$store.dispatch('FetchChatMessages', this.$route.params.id)\n },\n methods: {\n propertyExists(account, property) {\n return account[property]\n },\n getAuthor(account_id) {\n const sender = this.chat.sender\n const receiver = this.chat.receiver\n return account_id === sender.id ? sender : receiver\n },\n handleLoadMore() {\n const max_id = this.chatMessages.pop().id\n this.$store.dispatch('HandlePageChange', max_id)\n this.$store.dispatch('FetchChatMessages', this.$route.params.id)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.chat-page-header {\n display: flex;\n margin: 22px 15px 22px 20px;\n justify-content: center;\n padding: 0;\n h1 {\n display: inline\n }\n}\n.chat-card-participants {\n display: flex;\n margin: 0 20px;\n}\n.avatar-name-container {\n padding-right: 20px;\n display: flex;\n align-items: center;\n .el-icon-top-right {\n font-size: 2em;\n line-height: 36px;\n color: #606266;\n }\n .particiant-display-name {\n padding-left: 5px;\n }\n}\n.el-avatar h1 {\n padding-right: 5px;\n}\n.chat-messages-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.messages.el-timeline {\n padding: 0;\n}\n.no-chats {\n margin-left: 28px;\n color: #606266;\n}\n.reboot-button {\n padding: 10px;\n margin-left: 6px;\n}\n.router-link {\n text-decoration: none;\n}\n.chat-container {\n margin: 0 15px 0 20px;\n}\n.chats {\n padding: 0 20px 0 0;\n}\n.statuses-pagination {\n padding: 15px 0;\n text-align: center;\n}\n\n@media only screen and (max-width:480px) {\n .chat-page-header {\n padding: 0;\n margin: 7px 15px 15px 30px;\n flex-direction: column;\n align-items: baseline;\n h1 {\n margin-left: 0;\n margin-bottom: 10px;\n }\n }\n .chat-card-participants {\n display: flex;\n margin: 0;\n flex-wrap: wrap;\n }\n .avatar-name-container {\n margin-bottom: 10px;\n }\n .messages.el-timeline {\n padding-left: 10px;\n }\n .el-timeline-item__wrapper {\n padding-left: 18px;\n }\n .message-card .el-card__header .message-header {\n display: flex;\n flex-direction: row;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n .message-actions {\n width: auto;\n }\n }\n .message-card .message-header .message-meta {\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n .message-timestamp {\n margin-left: 0;\n }\n }\n}\n\n@media only screen and (max-width: 1051px) {\n .messages.el-timeline {\n max-width: 90%;\n }\n}\n\n@media only screen and (max-width:801px) and (min-width: 481px) {\n .chat-page-header {\n padding: 0;\n margin: 7px 15px 15px 30px;\n flex-direction: column;\n align-items: baseline;\n h1 {\n margin-left: 0;\n margin-bottom: 10px;\n }\n }\n .chat-card-participants {\n display: flex;\n margin: 0;\n flex-wrap: wrap;\n }\n .avatar-name-container {\n margin-bottom: 10px;\n }\n .messages.el-timeline {\n padding-left: 10px;\n max-width: 97%;\n }\n .el-timeline-item__wrapper {\n padding-left: 18px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./show.vue?vue&type=template&id=d1f150c0&\"\nimport script from \"./show.vue?vue&type=script&lang=js&\"\nexport * from \"./show.vue?vue&type=script&lang=js&\"\nimport style0 from \"./show.vue?vue&type=style&index=0&id=d1f150c0&prod&rel=stylesheet%2Fscss&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 render(){var _vm=this,_c=_vm._self._c;return (_vm.needReboot)?_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.restartApp'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"reboot-button\",attrs:{\"type\":\"warning\"},on:{\"click\":_vm.restartApp}},[_c('span',[_c('i',{staticClass:\"el-icon-refresh\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.instanceReboot'))+\"\\n \")])])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\n <el-tooltip v-if=\"needReboot\" :content=\"$t('settings.restartApp')\" placement=\"bottom-end\">\n <el-button type=\"warning\" class=\"reboot-button\" @click=\"restartApp\">\n <span>\n <i class=\"el-icon-refresh\"/>\n {{ $t('settings.instanceReboot') }}\n </span>\n </el-button>\n </el-tooltip>\n</template>\n\n<script>\nimport i18n from '@/lang'\n\nexport default {\n name: 'RebootButton',\n computed: {\n needReboot() {\n return this.$store.state.app.needReboot\n }\n },\n methods: {\n async restartApp() {\n try {\n await this.$store.dispatch('RestartApplication')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.restartSuccess')\n })\n }\n }\n}\n</script>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=53cfaf1d&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=16797c40&prod&rel=stylesheet%2Fscss&lang=scss&\""],"sourceRoot":""}