logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma

chunk-23b2.442bb8df.js.map (91362B)


      1 {"version":3,"sources":["webpack:///./src/views/users/index.vue?1afe","webpack:///./src/views/users/components/NewAccountDialog.vue?d353","webpack:///./src/views/users/components/UsersFilter.vue?f835","webpack:///./src/views/users/index.vue?d945","webpack:///./src/views/users/components/UsersFilter.vue?6a82","webpack:///src/views/users/components/UsersFilter.vue","webpack:///./src/views/users/components/UsersFilter.vue","webpack:///./src/views/users/components/UsersFilter.vue?3f06","webpack:///./src/views/users/components/MultipleUsersMenu.vue?56ef","webpack:///src/views/users/components/MultipleUsersMenu.vue","webpack:///./src/views/users/components/MultipleUsersMenu.vue","webpack:///./src/views/users/components/MultipleUsersMenu.vue?6f6f","webpack:///./src/views/users/components/NewAccountDialog.vue?9018","webpack:///src/views/users/components/NewAccountDialog.vue","webpack:///./src/views/users/components/NewAccountDialog.vue","webpack:///./src/views/users/components/NewAccountDialog.vue?0cce","webpack:///./src/views/users/index.vue?0a29","webpack:///src/views/users/index.vue","webpack:///./src/views/users/index.vue","webpack:///./src/views/users/components/MultipleUsersMenu.vue?8970"],"names":["_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","n","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_NewAccountDialog_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_UsersFilter_vue_vue_type_style_index_0_id_71bc6b38_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","components_UsersFiltervue_type_script_lang_js_","data","value","computed","isDesktop","this","$store","state","app","device","methods","removeOppositeFilters","filtersQuantity","Object","keys","users","filters","length","currentFilters","$data","slice","indexOfLocal","indexOf","indexOfExternal","indexOfActive","indexOfDeactivated","filterToRemove","splice","_filterToRemove","toggleFilters","reduce","acc","filter","objectSpread_default","defineProperty_default","dispatch","component","componentNormalizer","_vm","_h","$createElement","_c","_self","staticClass","attrs","clearable","placeholder","$t","multiple","on","change","model","callback","$$v","expression","label","_v","_s","options","__file","UsersFilter","components_MultipleUsersMenuvue_type_script_lang_js_","props","selectedUsers","type","Array","default","showDropdownForMultipleUsers","$props","mappers","_this","applyActionToAllUsers","filteredUsers","fn","Promise","all","map","then","$message","message","$emit","catch","err","console","log","grantRight","right","toggleRightFn","_ref","asyncToGenerator_default","regenerator_default","a","mark","_callee","user","wrap","_context","prev","next","abrupt","sent","stop","_x","apply","arguments","filtered","local","roles","id","revokeRight","_ref2","_callee2","_context2","_x2","activate","deactivated","_ref3","_callee3","_context3","nickname","_x3","deactivate","_ref4","_callee4","_context4","_x4","remove","_ref5","_callee5","_context5","_x5","addTag","tag","_callee6","filterUsersFn","_context6","tags","includes","t0","removeTag","_callee7","_context7","requirePasswordReset","grantRightToMultipleUsers","confirmMessage","revokeRightFromMultipleUsers","activateMultipleUsers","deactivateMultipleUsers","deleteMultipleUsers","nodeInfo","metadata","mailerEnabled","$alert","addTagForMultipleUsers","removeTagFromMultipleUsers","applyAction","_this2","$confirm","confirmButtonText","cancelButtonText","MultipleUsersMenu_component","size","trigger","placement","_e","slot","nativeOn","click","$event","divided","MultipleUsersMenu","components_NewAccountDialogvue_type_script_lang_js_","name","dialogFormVisible","Boolean","newUserForm","email","password","rules","validator","validateUsername","validateEmail","validatePassword","isVisible","get","set","closeDialogWindow","getLabelWidth","resetForm","$nextTick","$refs","resetFields","submitForm","formName","validate","valid","rule","Error","validEmail","validNickname","test","NewAccountDialog_component","visible","show-close","title","custom-class","update:visible","open","ref","label-width","status-icon","prop","autofocus","$set","autocomplete","views_usersvue_type_script_lang_js_","components","NewAccountDialog","search","createAccountDialogOpen","resetPasswordDialogOpen","loading","normalizedUsersCount","numeral_default","totalUsersCount","format","fetchedUsers","usersCount","pageSize","passwordResetLink","passwordResetToken","link","token","currentPage","isMobile","width","created","handleDebounceSearchInput","lodash_debounce_default","query","page","mounted","activationIcon","status","clearSelection","usersTable","createNewAccount","_createNewAccount","accountData","finish","getFirstLetter","str","charAt","toUpperCase","getPasswordResetToken","handleDeactivation","handleDeletion","handlePageChange","searchQuery","handleSelectionChange","closeResetPasswordDialog","showAdminAction","showDeactivatedButton","toggleTag","toggleUserRight","users_component","input","selected-users","apply-action","dialog-form-visible","closeWindow","directives","rawName","staticStyle","row-key","selection-change","reserve-selection","align","min-width","scopedSlots","_u","key","scope","to","params","row","class","fixed","admin","moderator","active-tag","close","href","target","total","current-page","page-size","background","layout","current-change","__webpack_exports__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_MultipleUsersMenu_vue_vue_type_style_index_0_id_a2aed82c_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"static/js/chunk-23b2.442bb8df.js","sourcesContent":["import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=style&index=0&id=71bc6b38&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=style&index=0&id=71bc6b38&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"users-container\"},[_c('h1',[_vm._v(\"\\n    \"+_vm._s(_vm.$t('users.users'))+\"\\n    \"),_c('span',{staticClass:\"user-count\"},[_vm._v(\"(\"+_vm._s(_vm.normalizedUsersCount)+\")\")])]),_vm._v(\" \"),_c('div',{staticClass:\"filter-container\"},[_c('users-filter'),_vm._v(\" \"),_c('el-input',{staticClass:\"search\",attrs:{\"placeholder\":_vm.$t('users.search')},on:{\"input\":_vm.handleDebounceSearchInput},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"actions-container\"},[_c('el-button',{staticClass:\"actions-button create-account\",on:{\"click\":function($event){_vm.createAccountDialogOpen = true}}},[_c('span',[_c('i',{staticClass:\"el-icon-plus\"}),_vm._v(\"\\n        \"+_vm._s(_vm.$t('users.createAccount'))+\"\\n      \")])]),_vm._v(\" \"),_c('multiple-users-menu',{attrs:{\"selected-users\":_vm.selectedUsers},on:{\"apply-action\":_vm.clearSelection}})],1),_vm._v(\" \"),_c('new-account-dialog',{attrs:{\"dialog-form-visible\":_vm.createAccountDialogOpen},on:{\"createNewAccount\":_vm.createNewAccount,\"closeWindow\":function($event){_vm.createAccountDialogOpen = false}}}),_vm._v(\" \"),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"usersTable\",staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.users,\"row-key\":\"id\"},on:{\"selection-change\":_vm.handleSelectionChange}},[(_vm.isDesktop)?_c('el-table-column',{attrs:{\"type\":\"selection\",\"reserve-selection\":\"\",\"width\":\"44\",\"align\":\"center\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"min-width\":_vm.width,\"label\":_vm.$t('users.id'),\"prop\":\"id\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.name'),\"prop\":\"nickname\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('router-link',{attrs:{\"to\":{ name: 'UsersShow', params: { id: scope.row.id }}}},[_vm._v(_vm._s(scope.row.nickname))]),_vm._v(\" \"),(_vm.isDesktop)?_c('el-tag',{attrs:{\"type\":\"info\",\"size\":\"mini\"}},[_c('span',[_vm._v(_vm._s(scope.row.local ? _vm.$t('users.local') : _vm.$t('users.external')))])]):_vm._e()]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"min-width\":_vm.width,\"label\":_vm.$t('users.status')},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',{attrs:{\"type\":scope.row.deactivated ? 'danger' : 'success'}},[(_vm.isDesktop)?_c('span',[_vm._v(_vm._s(scope.row.deactivated ? _vm.$t('users.deactivated') : _vm.$t('users.active')))]):_c('i',{class:_vm.activationIcon(scope.row.deactivated)})]),_vm._v(\" \"),(scope.row.roles.admin)?_c('el-tag',[_c('span',[_vm._v(_vm._s(_vm.isDesktop ? _vm.$t('users.admin') : _vm.getFirstLetter(_vm.$t('users.admin'))))])]):_vm._e(),_vm._v(\" \"),(scope.row.roles.moderator)?_c('el-tag',[_c('span',[_vm._v(_vm._s(_vm.isDesktop ? _vm.$t('users.moderator') : _vm.getFirstLetter(_vm.$t('users.moderator'))))])]):_vm._e()]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.actions'),\"fixed\":\"right\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-dropdown',{attrs:{\"size\":\"small\",\"trigger\":\"click\"}},[_c('span',{staticClass:\"el-dropdown-link\"},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.moderation'))+\"\\n            \"),(_vm.isDesktop)?_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[(_vm.showAdminAction(scope.row))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(scope.row, 'admin')}}},[_vm._v(\"\\n              \"+_vm._s(scope.row.roles.admin ? _vm.$t('users.revokeAdmin') : _vm.$t('users.grantAdmin'))+\"\\n            \")]):_vm._e(),_vm._v(\" \"),(_vm.showAdminAction(scope.row))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(scope.row, 'moderator')}}},[_vm._v(\"\\n              \"+_vm._s(scope.row.roles.moderator ? _vm.$t('users.revokeModerator') : _vm.$t('users.grantModerator'))+\"\\n            \")]):_vm._e(),_vm._v(\" \"),(_vm.showDeactivatedButton(scope.row.id))?_c('el-dropdown-item',{attrs:{\"divided\":_vm.showAdminAction(scope.row)},nativeOn:{\"click\":function($event){return _vm.handleDeactivation(scope.row)}}},[_vm._v(\"\\n              \"+_vm._s(scope.row.deactivated ? _vm.$t('users.activateAccount') : _vm.$t('users.deactivateAccount'))+\"\\n            \")]):_vm._e(),_vm._v(\" \"),(_vm.showDeactivatedButton(scope.row.id))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleDeletion(scope.row)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.deleteAccount'))+\"\\n            \")]):_vm._e(),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('force_nsfw') },attrs:{\"divided\":_vm.showAdminAction(scope.row)},nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'force_nsfw')}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.forceNsfw'))+\"\\n              \"),(scope.row.tags.includes('force_nsfw'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('strip_media') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'strip_media')}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.stripMedia'))+\"\\n              \"),(scope.row.tags.includes('strip_media'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('force_unlisted') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'force_unlisted')}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.forceUnlisted'))+\"\\n              \"),(scope.row.tags.includes('force_unlisted'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('sandbox') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'sandbox')}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.sandbox'))+\"\\n              \"),(scope.row.tags.includes('sandbox'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),(scope.row.local)?_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('disable_remote_subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'disable_remote_subscription')}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.disableRemoteSubscription'))+\"\\n              \"),(scope.row.tags.includes('disable_remote_subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(scope.row.local)?_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('disable_any_subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'disable_any_subscription')}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.disableAnySubscription'))+\"\\n              \"),(scope.row.tags.includes('disable_any_subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(scope.row.local)?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.getPasswordResetToken(scope.row.nickname)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.getPasswordResetToken'))+\"\\n            \")]):_vm._e(),_vm._v(\" \"),(scope.row.local)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.requirePasswordReset(scope.row.nickname)}}},[_vm._v(\"\\n              \"+_vm._s(_vm.$t('users.requirePasswordReset'))+\"\\n            \")]):_vm._e()],1)],1)]}}])})],1),_vm._v(\" \"),_c('el-dialog',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"visible\":_vm.resetPasswordDialogOpen,\"title\":_vm.$t('users.passwordResetTokenCreated'),\"custom-class\":\"password-reset-token-dialog\"},on:{\"update:visible\":function($event){_vm.resetPasswordDialogOpen=$event},\"close\":_vm.closeResetPasswordDialog}},[_c('div',[_c('p',{staticClass:\"password-reset-token\"},[_vm._v(\"Password reset token was generated: \"+_vm._s(_vm.passwordResetToken))]),_vm._v(\" \"),_c('p',[_vm._v(\"You can also use this link to reset password:\\n        \"),_c('a',{staticClass:\"reset-password-link\",attrs:{\"href\":_vm.passwordResetLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.passwordResetLink))])])])]),_vm._v(\" \"),(_vm.users.length === 0)?_c('div',{staticClass:\"no-users-message\"},[_c('p',[_vm._v(\"There are no users to display\")])]):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('div',{staticClass:\"pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.usersCount,\"current-page\":_vm.currentPage,\"page-size\":_vm.pageSize,\"background\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handlePageChange}})],1):_vm._e()],1)}\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!./UsersFilter.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!./UsersFilter.vue?vue&type=script&lang=js&\"","<template>\n  <el-select\n    v-model=\"value\"\n    :clearable=\"isDesktop\"\n    :placeholder=\"$t('usersFilter.inputPlaceholder')\"\n    multiple\n    class=\"select-field\"\n    @change=\"toggleFilters\">\n    <el-option-group :label=\"$t('usersFilter.byUserType')\">\n      <el-option value=\"local\">{{ $t('usersFilter.local') }}</el-option>\n      <el-option value=\"external\">{{ $t('usersFilter.external') }}</el-option>\n    </el-option-group>\n    <el-option-group :label=\"$t('usersFilter.byStatus')\">\n      <el-option value=\"active\">{{ $t('usersFilter.active') }}</el-option>\n      <el-option value=\"deactivated\">{{ $t('usersFilter.deactivated') }}</el-option>\n    </el-option-group>\n  </el-select>\n</template>\n\n<script>\nexport default {\n  data() {\n    return {\n      value: []\n    }\n  },\n  computed: {\n    isDesktop() {\n      return this.$store.state.app.device === 'desktop'\n    }\n  },\n  methods: {\n    removeOppositeFilters() {\n      const filtersQuantity = Object.keys(this.$store.state.users.filters).length\n      const currentFilters = this.$data.value.slice()\n      const indexOfLocal = currentFilters.indexOf('local')\n      const indexOfExternal = currentFilters.indexOf('external')\n      const indexOfActive = currentFilters.indexOf('active')\n      const indexOfDeactivated = currentFilters.indexOf('deactivated')\n      if (currentFilters.length === filtersQuantity) {\n        return []\n      } else if (indexOfLocal > -1 && indexOfExternal > -1) {\n        const filterToRemove = indexOfLocal > indexOfExternal ? indexOfExternal : indexOfLocal\n        currentFilters.splice(filterToRemove, 1)\n      } else if (indexOfActive > -1 && indexOfDeactivated > -1) {\n        const filterToRemove = indexOfActive > indexOfDeactivated ? indexOfDeactivated : indexOfActive\n        currentFilters.splice(filterToRemove, 1)\n      }\n      return currentFilters\n    },\n    toggleFilters() {\n      this.$data.value = this.removeOppositeFilters()\n      const currentFilters = this.$data.value.reduce((acc, filter) => ({ ...acc, [filter]: true }), {})\n      this.$store.dispatch('ToggleUsersFilter', currentFilters)\n    }\n  }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n.select-field {\n  width: 350px;\n}\n@media\nonly screen and (max-width: 760px),\n(min-device-width: 768px) and (max-device-width: 1024px) {\n  .select-field {\n    width: 100%;\n    margin-bottom: 5px;\n  }\n}\n</style>\n","import { render, staticRenderFns } from \"./UsersFilter.vue?vue&type=template&id=71bc6b38&scoped=true&\"\nimport script from \"./UsersFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UsersFilter.vue?vue&type=style&index=0&id=71bc6b38&rel=stylesheet%2Fscss&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  \"71bc6b38\",\n  null\n  \n)\n\ncomponent.options.__file = \"UsersFilter.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-select',{staticClass:\"select-field\",attrs:{\"clearable\":_vm.isDesktop,\"placeholder\":_vm.$t('usersFilter.inputPlaceholder'),\"multiple\":\"\"},on:{\"change\":_vm.toggleFilters},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byUserType')}},[_c('el-option',{attrs:{\"value\":\"local\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.local')))]),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"external\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.external')))])],1),_vm._v(\" \"),_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byStatus')}},[_c('el-option',{attrs:{\"value\":\"active\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.active')))]),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"deactivated\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.deactivated')))])],1)],1)}\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!./MultipleUsersMenu.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!./MultipleUsersMenu.vue?vue&type=script&lang=js&\"","<template>\n  <el-dropdown size=\"small\" trigger=\"click\" placement=\"bottom-start\">\n    <el-button v-if=\"isDesktop\" class=\"actions-button\">\n      <span class=\"actions-button-container\">\n        <span>\n          <i class=\"el-icon-edit\" />\n          {{ $t('users.moderateUsers') }}\n        </span>\n        <i class=\"el-icon-arrow-down el-icon--right\"/>\n      </span>\n    </el-button>\n    <el-dropdown-menu v-if=\"showDropdownForMultipleUsers\" slot=\"dropdown\">\n      <el-dropdown-item\n        @click.native=\"grantRightToMultipleUsers('admin')\">\n        {{ $t('users.grantAdmin') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        @click.native=\"revokeRightFromMultipleUsers('admin')\">\n        {{ $t('users.revokeAdmin') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        @click.native=\"grantRightToMultipleUsers('moderator')\">\n        {{ $t('users.grantModerator') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        @click.native=\"revokeRightFromMultipleUsers('moderator')\">\n        {{ $t('users.revokeModerator') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        divided\n        @click.native=\"activateMultipleUsers\">\n        {{ $t('users.activateAccounts') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        @click.native=\"deactivateMultipleUsers\">\n        {{ $t('users.deactivateAccounts') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        @click.native=\"deleteMultipleUsers\">\n        {{ $t('users.deleteAccounts') }}\n      </el-dropdown-item>\n      <el-dropdown-item\n        @click.native=\"requirePasswordReset\">\n        {{ $t('users.requirePasswordReset') }}\n      </el-dropdown-item>\n      <el-dropdown-item divided class=\"no-hover\">\n        <div class=\"tag-container\">\n          <span class=\"tag-text\">{{ $t('users.forceNsfw') }}</span>\n          <el-button-group class=\"tag-button-group\">\n            <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('force_nsfw')\">\n              {{ $t('users.apply') }}\n            </el-button>\n            <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('force_nsfw')\">\n              {{ $t('users.remove') }}\n            </el-button>\n          </el-button-group>\n        </div>\n      </el-dropdown-item>\n      <el-dropdown-item class=\"no-hover\">\n        <div class=\"tag-container\">\n          <span class=\"tag-text\">{{ $t('users.stripMedia') }}</span>\n          <el-button-group class=\"tag-button-group\">\n            <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('strip_media')\">\n              {{ $t('users.apply') }}\n            </el-button>\n            <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('strip_media')\">\n              {{ $t('users.remove') }}\n            </el-button>\n          </el-button-group>\n        </div>\n      </el-dropdown-item>\n      <el-dropdown-item class=\"no-hover\">\n        <div class=\"tag-container\">\n          <span class=\"tag-text\">{{ $t('users.forceUnlisted') }}</span>\n          <el-button-group class=\"tag-button-group\">\n            <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('force_unlisted')\">\n              {{ $t('users.apply') }}\n            </el-button>\n            <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('force_unlisted')\">\n              {{ $t('users.remove') }}\n            </el-button>\n          </el-button-group>\n        </div>\n      </el-dropdown-item>\n      <el-dropdown-item class=\"no-hover\">\n        <div class=\"tag-container\">\n          <span class=\"tag-text\">{{ $t('users.sandbox') }}</span>\n          <el-button-group class=\"tag-button-group\">\n            <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('sandbox')\">\n              {{ $t('users.apply') }}\n            </el-button>\n            <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('sandbox')\">\n              {{ $t('users.remove') }}\n            </el-button>\n          </el-button-group>\n        </div>\n      </el-dropdown-item>\n      <el-dropdown-item class=\"no-hover\">\n        <div class=\"tag-container\">\n          <span class=\"tag-text\">{{ $t('users.disableRemoteSubscriptionForMultiple') }}</span>\n          <el-button-group class=\"tag-button-group\">\n            <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('disable_remote_subscription')\">\n              {{ $t('users.apply') }}\n            </el-button>\n            <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('disable_remote_subscription')\">\n              {{ $t('users.remove') }}\n            </el-button>\n          </el-button-group>\n        </div>\n      </el-dropdown-item>\n      <el-dropdown-item class=\"no-hover\">\n        <div class=\"tag-container\">\n          <span class=\"tag-text\">{{ $t('users.disableAnySubscriptionForMultiple') }}</span>\n          <el-button-group class=\"tag-button-group\">\n            <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('disable_any_subscription')\">\n              {{ $t('users.apply') }}\n            </el-button>\n            <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('disable_any_subscription')\">\n              {{ $t('users.remove') }}\n            </el-button>\n          </el-button-group>\n        </div>\n      </el-dropdown-item>\n    </el-dropdown-menu>\n    <el-dropdown-menu v-else slot=\"dropdown\">\n      <el-dropdown-item>\n        {{ $t('users.selectUsers') }}\n      </el-dropdown-item>\n    </el-dropdown-menu>\n  </el-dropdown>\n</template>\n\n<script>\nexport default {\n  props: {\n    selectedUsers: {\n      type: Array,\n      default: function() {\n        return []\n      }\n    }\n  },\n  computed: {\n    showDropdownForMultipleUsers() {\n      return this.$props.selectedUsers.length > 0\n    },\n    isDesktop() {\n      return this.$store.state.app.device === 'desktop'\n    }\n  },\n  methods: {\n    mappers() {\n      const applyActionToAllUsers = (filteredUsers, fn) => Promise.all(filteredUsers.map(fn))\n        .then(() => {\n          this.$message({\n            type: 'success',\n            message: this.$t('users.completed')\n          })\n          this.$emit('apply-action')\n        }).catch((err) => {\n          console.log(err)\n          return\n        })\n      return {\n        grantRight: (right) => () => {\n          const filterUsersFn = user => user.local && !user.roles[right] && this.$store.state.user.id !== user.id\n          const toggleRightFn = async(user) => await this.$store.dispatch('ToggleRight', { user, right })\n          const filtered = this.selectedUsers.filter(filterUsersFn)\n\n          applyActionToAllUsers(filtered, toggleRightFn)\n        },\n        revokeRight: (right) => () => {\n          const filterUsersFn = user => user.local && user.roles[right] && this.$store.state.user.id !== user.id\n          const toggleRightFn = async(user) => await this.$store.dispatch('ToggleRight', { user, right })\n          const filtered = this.selectedUsers.filter(filterUsersFn)\n\n          applyActionToAllUsers(filtered, toggleRightFn)\n        },\n        activate: () => {\n          const filtered = this.selectedUsers.filter(user => user.deactivated && this.$store.state.user.id !== user.id)\n          const toggleActivationFn = async(user) => await this.$store.dispatch('ToggleUserActivation', user.nickname)\n\n          applyActionToAllUsers(filtered, toggleActivationFn)\n        },\n        deactivate: () => {\n          const filtered = this.selectedUsers.filter(user => !user.deactivated && this.$store.state.user.id !== user.id)\n          const toggleActivationFn = async(user) => await this.$store.dispatch('ToggleUserActivation', user.nickname)\n\n          applyActionToAllUsers(filtered, toggleActivationFn)\n        },\n        remove: () => {\n          const filtered = this.selectedUsers.filter(user => this.$store.state.user.id !== user.id)\n          const deleteAccountFn = async(user) => await this.$store.dispatch('DeleteUser', user)\n\n          applyActionToAllUsers(filtered, deleteAccountFn)\n        },\n        addTag: (tag) => async() => {\n          const filterUsersFn = user => tag === 'disable_remote_subscription' || tag === 'disable_any_subscription'\n            ? user.local && !user.tags.includes(tag)\n            : !user.tags.includes(tag)\n          const users = this.selectedUsers.filter(filterUsersFn)\n\n          try {\n            await this.$store.dispatch('AddTag', { users, tag })\n          } catch (err) {\n            console.log(err)\n            return\n          }\n\n          this.$message({\n            type: 'success',\n            message: this.$t('users.completed')\n          })\n          this.$emit('apply-action')\n        },\n        removeTag: (tag) => async() => {\n          const filterUsersFn = user => tag === 'disable_remote_subscription' || tag === 'disable_any_subscription'\n            ? user.local && user.tags.includes(tag)\n            : user.tags.includes(tag)\n          const users = this.selectedUsers.filter(filterUsersFn)\n\n          try {\n            await this.$store.dispatch('RemoveTag', { users, tag })\n          } catch (err) {\n            console.log(err)\n            return\n          }\n\n          this.$message({\n            type: 'success',\n            message: this.$t('users.completed')\n          })\n          this.$emit('apply-action')\n        },\n        requirePasswordReset: () => {\n          this.selectedUsers.map(user => this.$store.dispatch('RequirePasswordReset', user))\n        }\n      }\n    },\n    grantRightToMultipleUsers(right) {\n      const { grantRight } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.grantRightConfirmation', { right }),\n        grantRight(right)\n      )\n    },\n    revokeRightFromMultipleUsers(right) {\n      const { revokeRight } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.revokeRightConfirmation', { right }),\n        revokeRight(right)\n      )\n    },\n    activateMultipleUsers() {\n      const { activate } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.activateMultipleUsersConfirmation'),\n        activate\n      )\n    },\n    deactivateMultipleUsers() {\n      const { deactivate } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.deactivateMultipleUsersConfirmation'),\n        deactivate\n      )\n    },\n    deleteMultipleUsers() {\n      const { remove } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.deleteMultipleUsersConfirmation'),\n        remove\n      )\n    },\n    requirePasswordReset() {\n      const mailerEnabled = this.$store.state.user.nodeInfo.metadata.mailerEnabled\n\n      if (!mailerEnabled) {\n        this.$alert(this.$t('users.mailerMustBeEnabled'), 'Error', { type: 'error' })\n\n        return\n      }\n\n      const { requirePasswordReset } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.requirePasswordResetConfirmation'),\n        requirePasswordReset\n      )\n    },\n    addTagForMultipleUsers(tag) {\n      const { addTag } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.addTagForMultipleUsersConfirmation'),\n        addTag(tag)\n      )\n    },\n    removeTagFromMultipleUsers(tag) {\n      const { removeTag } = this.mappers()\n      this.confirmMessage(\n        this.$t('users.removeTagFromMultipleUsersConfirmation'),\n        removeTag(tag)\n      )\n    },\n    confirmMessage(message, applyAction) {\n      this.$confirm(message, {\n        confirmButtonText: this.$t('users.ok'),\n        cancelButtonText: this.$t('users.cancel'),\n        type: 'warning'\n      }).then(() => {\n        applyAction()\n      }).catch(() => {\n        this.$message({\n          type: 'info',\n          message: this.$t('users.canceled')\n        })\n      })\n    }\n  }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n  .actions-button {\n    text-align: left;\n    width: 350px;\n    padding: 10px;\n  }\n  .actions-button-container {\n    display: flex;\n    justify-content: space-between;\n  }\n  .el-dropdown {\n    float: right;\n  }\n  .el-icon-edit {\n    margin-right: 5px;\n  }\n  .tag-container {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n  }\n  .tag-text {\n    padding-right: 20px;\n  }\n  .no-hover:hover {\n    color: #606266;\n    background-color: white;\n    cursor: auto;\n  }\n</style>\n","import { render, staticRenderFns } from \"./MultipleUsersMenu.vue?vue&type=template&id=a2aed82c&scoped=true&\"\nimport script from \"./MultipleUsersMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleUsersMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultipleUsersMenu.vue?vue&type=style&index=0&id=a2aed82c&rel=stylesheet%2Fscss&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  \"a2aed82c\",\n  null\n  \n)\n\ncomponent.options.__file = \"MultipleUsersMenu.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dropdown',{attrs:{\"size\":\"small\",\"trigger\":\"click\",\"placement\":\"bottom-start\"}},[(_vm.isDesktop)?_c('el-button',{staticClass:\"actions-button\"},[_c('span',{staticClass:\"actions-button-container\"},[_c('span',[_c('i',{staticClass:\"el-icon-edit\"}),_vm._v(\"\\n        \"+_vm._s(_vm.$t('users.moderateUsers'))+\"\\n      \")]),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})])]):_vm._e(),_vm._v(\" \"),(_vm.showDropdownForMultipleUsers)?_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.grantRightToMultipleUsers('admin')}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.grantAdmin'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.revokeRightFromMultipleUsers('admin')}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.revokeAdmin'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.grantRightToMultipleUsers('moderator')}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.grantModerator'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.revokeRightFromMultipleUsers('moderator')}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.revokeModerator'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.activateMultipleUsers($event)}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.activateAccounts'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.deactivateMultipleUsers($event)}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.deactivateAccounts'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.deleteMultipleUsers($event)}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.deleteAccounts'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.requirePasswordReset($event)}}},[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.requirePasswordReset'))+\"\\n    \")]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\",attrs:{\"divided\":\"\"}},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.forceNsfw')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('force_nsfw')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.apply'))+\"\\n          \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('force_nsfw')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.remove'))+\"\\n          \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.stripMedia')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('strip_media')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.apply'))+\"\\n          \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('strip_media')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.remove'))+\"\\n          \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.forceUnlisted')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('force_unlisted')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.apply'))+\"\\n          \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('force_unlisted')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.remove'))+\"\\n          \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.sandbox')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('sandbox')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.apply'))+\"\\n          \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('sandbox')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.remove'))+\"\\n          \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.disableRemoteSubscriptionForMultiple')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('disable_remote_subscription')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.apply'))+\"\\n          \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('disable_remote_subscription')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.remove'))+\"\\n          \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.disableAnySubscriptionForMultiple')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('disable_any_subscription')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.apply'))+\"\\n          \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('disable_any_subscription')}}},[_vm._v(\"\\n            \"+_vm._s(_vm.$t('users.remove'))+\"\\n          \")])],1)],1)])],1):_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',[_vm._v(\"\\n      \"+_vm._s(_vm.$t('users.selectUsers'))+\"\\n    \")])],1)],1)}\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!./NewAccountDialog.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!./NewAccountDialog.vue?vue&type=script&lang=js&\"","<template>\n  <el-dialog\n    :visible.sync=\"isVisible\"\n    :show-close=\"false\"\n    :title=\"$t('users.createAccount')\"\n    custom-class=\"create-user-dialog\"\n    @open=\"resetForm\">\n    <el-form ref=\"newUserForm\" :model=\"newUserForm\" :rules=\"rules\" :label-width=\"getLabelWidth\" status-icon>\n      <el-form-item :label=\"$t('users.username')\" prop=\"nickname\" class=\"create-account-form-item\">\n        <el-input v-model=\"newUserForm.nickname\" name=\"nickname\" autofocus/>\n      </el-form-item>\n      <el-form-item :label=\"$t('users.email')\" prop=\"email\" class=\"create-account-form-item\">\n        <el-input v-model=\"newUserForm.email\" name=\"email\" type=\"email\"/>\n      </el-form-item>\n      <el-form-item :label=\"$t('users.password')\" prop=\"password\" class=\"create-account-form-item-without-margin\">\n        <el-input v-model=\"newUserForm.password\" type=\"password\" name=\"password\" autocomplete=\"off\"/>\n      </el-form-item>\n    </el-form>\n    <span slot=\"footer\">\n      <el-button @click=\"closeDialogWindow\">{{ $t('users.cancel') }}</el-button>\n      <el-button type=\"primary\" @click=\"submitForm('newUserForm')\">{{ $t('users.create') }}</el-button>\n    </span>\n  </el-dialog>\n</template>\n\n<script>\nexport default {\n  name: 'NewAccountDialog',\n  props: {\n    dialogFormVisible: {\n      type: Boolean,\n      default: function() {\n        return false\n      }\n    }\n  },\n  data() {\n    return {\n      newUserForm: {\n        nickname: '',\n        email: '',\n        password: ''\n      },\n      rules: {\n        nickname: [\n          { validator: this.validateUsername, trigger: 'blur' }\n        ],\n        email: [\n          { validator: this.validateEmail, trigger: 'blur' }\n        ],\n        password: [\n          { validator: this.validatePassword, trigger: 'blur' }\n        ]\n      }\n    }\n  },\n  computed: {\n    isDesktop() {\n      return this.$store.state.app.device === 'desktop'\n    },\n    isVisible: {\n      get() {\n        return this.$props.dialogFormVisible\n      },\n      set() {\n        this.closeDialogWindow()\n      }\n    },\n    getLabelWidth() {\n      return this.isDesktop ? '120px' : '85px'\n    }\n  },\n  methods: {\n    closeDialogWindow() {\n      this.$emit('closeWindow')\n    },\n    resetForm() {\n      this.$nextTick(() => {\n        this.$refs['newUserForm'].resetFields()\n      })\n    },\n    submitForm(formName) {\n      this.$refs[formName].validate((valid) => {\n        if (valid) {\n          this.$emit('createNewAccount', this.$data.newUserForm)\n        } else {\n          this.$message({\n            type: 'error',\n            message: this.$t('users.submitFormError')\n          })\n          return false\n        }\n      })\n    },\n    validateEmail(rule, value, callback) {\n      if (value === '') {\n        return callback(new Error(this.$t('users.emptyEmailError')))\n      } else if (!this.validEmail(value)) {\n        return callback(new Error(this.$t('users.invalidEmailError')))\n      } else {\n        return callback()\n      }\n    },\n    validatePassword(rule, value, callback) {\n      if (value === '') {\n        return callback(new Error(this.$t('users.emptyPasswordError')))\n      } else {\n        return callback()\n      }\n    },\n    validateUsername(rule, value, callback) {\n      if (value === '') {\n        return callback(new Error(this.$t('users.emptyNicknameError')))\n      } else if (!this.validNickname(value)) {\n        return callback(new Error(this.$t('users.invalidNicknameError')))\n      } else {\n        return callback()\n      }\n    },\n    validEmail(email) {\n      var re = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\n      return re.test(email)\n    },\n    validNickname(nickname) {\n      var re = /^[a-zA-Z\\d]+$/\n      return re.test(nickname)\n    }\n  }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.el-dialog__body {\n  padding: 20px 20px 20px 20px\n}\n.create-account-form-item {\n  margin-bottom: 20px;\n}\n.create-account-form-item-without-margin {\n  margin-bottom: 0px;\n}\n@media\nonly screen and (max-width: 760px),\n(min-device-width: 768px) and (max-device-width: 1024px) {\n  .create-user-dialog {\n    width: 85%\n  }\n  .create-account-form-item {\n    margin-bottom: 20px;\n  }\n  .el-dialog__body {\n    padding: 20px 20px 20px 20px\n  }\n}\n</style>\n","import { render, staticRenderFns } from \"./NewAccountDialog.vue?vue&type=template&id=18b328aa&\"\nimport script from \"./NewAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./NewAccountDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NewAccountDialog.vue?vue&type=style&index=0&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\ncomponent.options.__file = \"NewAccountDialog.vue\"\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.isVisible,\"show-close\":false,\"title\":_vm.$t('users.createAccount'),\"custom-class\":\"create-user-dialog\"},on:{\"update:visible\":function($event){_vm.isVisible=$event},\"open\":_vm.resetForm}},[_c('el-form',{ref:\"newUserForm\",attrs:{\"model\":_vm.newUserForm,\"rules\":_vm.rules,\"label-width\":_vm.getLabelWidth,\"status-icon\":\"\"}},[_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.username'),\"prop\":\"nickname\"}},[_c('el-input',{attrs:{\"name\":\"nickname\",\"autofocus\":\"\"},model:{value:(_vm.newUserForm.nickname),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"nickname\", $$v)},expression:\"newUserForm.nickname\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.email'),\"prop\":\"email\"}},[_c('el-input',{attrs:{\"name\":\"email\",\"type\":\"email\"},model:{value:(_vm.newUserForm.email),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"email\", $$v)},expression:\"newUserForm.email\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item-without-margin\",attrs:{\"label\":_vm.$t('users.password'),\"prop\":\"password\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"off\"},model:{value:(_vm.newUserForm.password),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"password\", $$v)},expression:\"newUserForm.password\"}})],1)],1),_vm._v(\" \"),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeDialogWindow}},[_vm._v(_vm._s(_vm.$t('users.cancel')))]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submitForm('newUserForm')}}},[_vm._v(_vm._s(_vm.$t('users.create')))])],1)],1)}\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  <div class=\"users-container\">\n    <h1>\n      {{ $t('users.users') }}\n      <span class=\"user-count\">({{ normalizedUsersCount }})</span>\n    </h1>\n    <div class=\"filter-container\">\n      <users-filter/>\n      <el-input :placeholder=\"$t('users.search')\" v-model=\"search\" class=\"search\" @input=\"handleDebounceSearchInput\"/>\n    </div>\n    <div class=\"actions-container\">\n      <el-button class=\"actions-button create-account\" @click=\"createAccountDialogOpen = true\">\n        <span>\n          <i class=\"el-icon-plus\"/>\n          {{ $t('users.createAccount') }}\n        </span>\n      </el-button>\n      <multiple-users-menu\n        :selected-users=\"selectedUsers\"\n        @apply-action=\"clearSelection\"/>\n    </div>\n    <new-account-dialog\n      :dialog-form-visible=\"createAccountDialogOpen\"\n      @createNewAccount=\"createNewAccount\"\n      @closeWindow=\"createAccountDialogOpen = false\"/>\n    <el-table\n      v-loading=\"loading\"\n      ref=\"usersTable\"\n      :data=\"users\"\n      row-key=\"id\"\n      style=\"width: 100%\"\n      @selection-change=\"handleSelectionChange\">\n      <el-table-column\n        v-if=\"isDesktop\"\n        type=\"selection\"\n        reserve-selection\n        width=\"44\"\n        align=\"center\"/>\n      <el-table-column :min-width=\"width\" :label=\"$t('users.id')\" prop=\"id\" />\n      <el-table-column :label=\"$t('users.name')\" prop=\"nickname\">\n        <template slot-scope=\"scope\">\n          <router-link :to=\"{ name: 'UsersShow', params: { id: scope.row.id }}\">{{ scope.row.nickname }}</router-link>\n          <el-tag v-if=\"isDesktop\" type=\"info\" size=\"mini\">\n            <span>{{ scope.row.local ? $t('users.local') : $t('users.external') }}</span>\n          </el-tag>\n        </template>\n      </el-table-column>\n      <el-table-column :min-width=\"width\" :label=\"$t('users.status')\">\n        <template slot-scope=\"scope\">\n          <el-tag :type=\"scope.row.deactivated ? 'danger' : 'success'\">\n            <span v-if=\"isDesktop\">{{ scope.row.deactivated ? $t('users.deactivated') : $t('users.active') }}</span>\n            <i v-else :class=\"activationIcon(scope.row.deactivated)\"/>\n          </el-tag>\n          <el-tag v-if=\"scope.row.roles.admin\">\n            <span>{{ isDesktop ? $t('users.admin') : getFirstLetter($t('users.admin')) }}</span>\n          </el-tag>\n          <el-tag v-if=\"scope.row.roles.moderator\">\n            <span>{{ isDesktop ? $t('users.moderator') : getFirstLetter($t('users.moderator')) }}</span>\n          </el-tag>\n        </template>\n      </el-table-column>\n      <el-table-column :label=\"$t('users.actions')\" fixed=\"right\">\n        <template slot-scope=\"scope\">\n          <el-dropdown size=\"small\" trigger=\"click\">\n            <span class=\"el-dropdown-link\">\n              {{ $t('users.moderation') }}\n              <i v-if=\"isDesktop\" class=\"el-icon-arrow-down el-icon--right\"/>\n            </span>\n            <el-dropdown-menu slot=\"dropdown\">\n              <el-dropdown-item\n                v-if=\"showAdminAction(scope.row)\"\n                @click.native=\"toggleUserRight(scope.row, 'admin')\">\n                {{ scope.row.roles.admin ? $t('users.revokeAdmin') : $t('users.grantAdmin') }}\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"showAdminAction(scope.row)\"\n                @click.native=\"toggleUserRight(scope.row, 'moderator')\">\n                {{ scope.row.roles.moderator ? $t('users.revokeModerator') : $t('users.grantModerator') }}\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"showDeactivatedButton(scope.row.id)\"\n                :divided=\"showAdminAction(scope.row)\"\n                @click.native=\"handleDeactivation(scope.row)\">\n                {{ scope.row.deactivated ? $t('users.activateAccount') : $t('users.deactivateAccount') }}\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"showDeactivatedButton(scope.row.id)\"\n                @click.native=\"handleDeletion(scope.row)\">\n                {{ $t('users.deleteAccount') }}\n              </el-dropdown-item>\n              <el-dropdown-item\n                :divided=\"showAdminAction(scope.row)\"\n                :class=\"{ 'active-tag': scope.row.tags.includes('force_nsfw') }\"\n                @click.native=\"toggleTag(scope.row, 'force_nsfw')\">\n                {{ $t('users.forceNsfw') }}\n                <i v-if=\"scope.row.tags.includes('force_nsfw')\" class=\"el-icon-check\"/>\n              </el-dropdown-item>\n              <el-dropdown-item\n                :class=\"{ 'active-tag': scope.row.tags.includes('strip_media') }\"\n                @click.native=\"toggleTag(scope.row, 'strip_media')\">\n                {{ $t('users.stripMedia') }}\n                <i v-if=\"scope.row.tags.includes('strip_media')\" class=\"el-icon-check\"/>\n              </el-dropdown-item>\n              <el-dropdown-item\n                :class=\"{ 'active-tag': scope.row.tags.includes('force_unlisted') }\"\n                @click.native=\"toggleTag(scope.row, 'force_unlisted')\">\n                {{ $t('users.forceUnlisted') }}\n                <i v-if=\"scope.row.tags.includes('force_unlisted')\" class=\"el-icon-check\"/>\n              </el-dropdown-item>\n              <el-dropdown-item\n                :class=\"{ 'active-tag': scope.row.tags.includes('sandbox') }\"\n                @click.native=\"toggleTag(scope.row, 'sandbox')\">\n                {{ $t('users.sandbox') }}\n                <i v-if=\"scope.row.tags.includes('sandbox')\" class=\"el-icon-check\"/>\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"scope.row.local\"\n                :class=\"{ 'active-tag': scope.row.tags.includes('disable_remote_subscription') }\"\n                @click.native=\"toggleTag(scope.row, 'disable_remote_subscription')\">\n                {{ $t('users.disableRemoteSubscription') }}\n                <i v-if=\"scope.row.tags.includes('disable_remote_subscription')\" class=\"el-icon-check\"/>\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"scope.row.local\"\n                :class=\"{ 'active-tag': scope.row.tags.includes('disable_any_subscription') }\"\n                @click.native=\"toggleTag(scope.row, 'disable_any_subscription')\">\n                {{ $t('users.disableAnySubscription') }}\n                <i v-if=\"scope.row.tags.includes('disable_any_subscription')\" class=\"el-icon-check\"/>\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"scope.row.local\"\n                divided\n                @click.native=\"getPasswordResetToken(scope.row.nickname)\">\n                {{ $t('users.getPasswordResetToken') }}\n              </el-dropdown-item>\n              <el-dropdown-item\n                v-if=\"scope.row.local\"\n                @click.native=\"requirePasswordReset(scope.row.nickname)\">\n                {{ $t('users.requirePasswordReset') }}\n              </el-dropdown-item>\n            </el-dropdown-menu>\n          </el-dropdown>\n        </template>\n      </el-table-column>\n    </el-table>\n    <el-dialog\n      v-loading=\"loading\"\n      :visible.sync=\"resetPasswordDialogOpen\"\n      :title=\"$t('users.passwordResetTokenCreated')\"\n      custom-class=\"password-reset-token-dialog\"\n      @close=\"closeResetPasswordDialog\">\n      <div>\n        <p class=\"password-reset-token\">Password reset token was generated: {{ passwordResetToken }}</p>\n        <p>You can also use this link to reset password:\n          <a :href=\"passwordResetLink\" target=\"_blank\" class=\"reset-password-link\">{{ passwordResetLink }}</a>\n        </p>\n      </div>\n    </el-dialog>\n    <div v-if=\"users.length === 0\" class=\"no-users-message\">\n      <p>There are no users to display</p>\n    </div>\n    <div v-if=\"!loading\" class=\"pagination\">\n      <el-pagination\n        :total=\"usersCount\"\n        :current-page=\"currentPage\"\n        :page-size=\"pageSize\"\n        background\n        layout=\"prev, pager, next\"\n        @current-change=\"handlePageChange\"\n      />\n    </div>\n  </div>\n</template>\n\n<script>\nimport debounce from 'lodash.debounce'\nimport numeral from 'numeral'\nimport UsersFilter from './components/UsersFilter'\nimport MultipleUsersMenu from './components/MultipleUsersMenu'\nimport NewAccountDialog from './components/NewAccountDialog'\n\nexport default {\n  name: 'Users',\n  components: {\n    UsersFilter,\n    MultipleUsersMenu,\n    NewAccountDialog\n  },\n  data() {\n    return {\n      search: '',\n      selectedUsers: [],\n      createAccountDialogOpen: false,\n      resetPasswordDialogOpen: false\n    }\n  },\n  computed: {\n    loading() {\n      return this.$store.state.users.loading\n    },\n    normalizedUsersCount() {\n      return numeral(this.$store.state.users.totalUsersCount).format('0a')\n    },\n    users() {\n      return this.$store.state.users.fetchedUsers\n    },\n    usersCount() {\n      return this.$store.state.users.totalUsersCount\n    },\n    pageSize() {\n      return this.$store.state.users.pageSize\n    },\n    passwordResetLink() {\n      return this.$store.state.users.passwordResetToken.link\n    },\n    passwordResetToken() {\n      return this.$store.state.users.passwordResetToken.token\n    },\n    currentPage() {\n      return this.$store.state.users.currentPage\n    },\n    isDesktop() {\n      return this.$store.state.app.device === 'desktop'\n    },\n    isMobile() {\n      return this.$store.state.app.device === 'mobile'\n    },\n    width() {\n      return this.isMobile ? 55 : false\n    }\n  },\n  created() {\n    this.handleDebounceSearchInput = debounce((query) => {\n      this.$store.dispatch('SearchUsers', { query, page: 1 })\n    }, 500)\n  },\n  mounted: function() {\n    this.$store.dispatch('FetchUsers', { page: 1 })\n  },\n  methods: {\n    activationIcon(status) {\n      return status ? 'el-icon-error' : 'el-icon-success'\n    },\n    clearSelection() {\n      this.$refs.usersTable.clearSelection()\n    },\n    async createNewAccount(accountData) {\n      try {\n        await this.$store.dispatch('CreateNewAccount', accountData)\n      } catch (_e) {\n        return\n      } finally {\n        this.createAccountDialogOpen = false\n      }\n      this.$message({\n        type: 'success',\n        message: this.$t('users.accountCreated')\n      })\n    },\n    getFirstLetter(str) {\n      return str.charAt(0).toUpperCase()\n    },\n    getPasswordResetToken(nickname) {\n      this.resetPasswordDialogOpen = true\n      this.$store.dispatch('GetPasswordResetToken', nickname)\n    },\n    requirePasswordReset(nickname) {\n      const mailerEnabled = this.$store.state.user.nodeInfo.metadata.mailerEnabled\n\n      if (!mailerEnabled) {\n        this.$alert(this.$t('users.mailerMustBeEnabled'), 'Error', { type: 'error' })\n\n        return\n      }\n\n      this.$store.dispatch('RequirePasswordReset', { nickname })\n    },\n    handleDeactivation({ nickname }) {\n      this.$store.dispatch('ToggleUserActivation', nickname)\n    },\n    handleDeletion(user) {\n      this.$store.dispatch('DeleteUser', user)\n    },\n    handlePageChange(page) {\n      const searchQuery = this.$store.state.users.searchQuery\n      if (searchQuery === '') {\n        this.$store.dispatch('FetchUsers', { page })\n      } else {\n        this.$store.dispatch('SearchUsers', { query: searchQuery, page })\n      }\n    },\n    handleSelectionChange(value) {\n      this.$data.selectedUsers = value\n    },\n    closeResetPasswordDialog() {\n      this.resetPasswordDialogOpen = false\n      this.$store.dispatch('RemovePasswordToken')\n    },\n    showAdminAction({ local, id }) {\n      return local && this.showDeactivatedButton(id)\n    },\n    showDeactivatedButton(id) {\n      return this.$store.state.user.id !== id\n    },\n    toggleTag(user, tag) {\n      user.tags.includes(tag)\n        ? this.$store.dispatch('RemoveTag', { users: [user], tag })\n        : this.$store.dispatch('AddTag', { users: [user], tag })\n    },\n    toggleUserRight(user, right) {\n      this.$store.dispatch('ToggleRight', { user, right })\n    }\n  }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.actions-button {\n  text-align: left;\n  width: 350px;\n  padding: 10px;\n}\n.actions-container {\n  display: flex;\n  height: 36px;\n  justify-content: space-between;\n  align-items: center;\n  margin: 0 15px 10px 15px;\n}\n.active-tag {\n  color: #409EFF;\n  font-weight: 700;\n  .el-icon-check {\n    color: #409EFF;\n    float: right;\n    margin: 7px 0 0 15px;\n  }\n}\n.el-dropdown-link:hover {\n    cursor: pointer;\n    color: #409EFF;\n  }\n.el-icon-plus {\n  margin-right: 5px;\n}\n.password-reset-token {\n  margin: 0 0 14px 0;\n}\n.password-reset-token-dialog {\n  width: 50%\n}\n.reset-password-link {\n  text-decoration: underline;\n}\n.users-container {\n  h1 {\n    margin: 22px 0 0 15px;\n  }\n\n  .pagination {\n    margin: 25px 0;\n    text-align: center;\n  }\n\n  .search {\n    width: 350px;\n    float: right;\n  }\n  .filter-container {\n    display: flex;\n    height: 36px;\n    justify-content: space-between;\n    align-items: center;\n    margin: 22px 15px 15px 15px\n  }\n  .user-count {\n    color: gray;\n    font-size: 28px;\n  }\n}\n@media\nonly screen and (max-width: 760px),\n(min-device-width: 768px) and (max-device-width: 1024px) {\n  .password-reset-token-dialog {\n    width: 85%\n  }\n  .users-container {\n    h1 {\n      margin: 7px 10px 15px 10px;\n    }\n    .actions-container {\n      display: flex;\n      flex-direction: column;\n      margin: 0 10px 7px 10px\n    }\n    .create-account {\n      width: 100%;\n    }\n    .el-icon-arrow-down {\n      font-size: 12px;\n    }\n    .search {\n      width: 100%;\n    }\n    .filter-container {\n      display: flex;\n      height: 82px;\n      flex-direction: column;\n      margin: 0 10px\n    }\n    .el-tag {\n      width: 30px;\n      display: inline-block;\n      margin-bottom: 4px;\n      font-weight: bold;\n      &.el-tag--success {\n        padding-left: 8px;\n      }\n      &.el-tag--danger {\n        padding-left: 8px;\n      }\n    }\n  }\n}\n</style>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f7de9566&\"\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&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\ncomponent.options.__file = \"index.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleUsersMenu.vue?vue&type=style&index=0&id=a2aed82c&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleUsersMenu.vue?vue&type=style&index=0&id=a2aed82c&rel=stylesheet%2Fscss&lang=scss&scoped=true&\""],"sourceRoot":""}