(window["webpackJsonpSettings"] = window["webpackJsonpSettings"] || []).push([[3],{

/***/ "./apps/settings/src/components/UserList.vue":
/*!***************************************************!*\
  !*** ./apps/settings/src/components/UserList.vue ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserList_vue_vue_type_template_id_6cba3aca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserList.vue?vue&type=template&id=6cba3aca& */ "./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&");
/* harmony import */ var _UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserList.vue?vue&type=script&lang=js& */ "./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _UserList_vue_vue_type_template_id_6cba3aca___WEBPACK_IMPORTED_MODULE_0__["render"],
  _UserList_vue_vue_type_template_id_6cba3aca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/components/UserList.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&":
/*!****************************************************************************!*\
  !*** ./apps/settings/src/components/UserList.vue?vue&type=script&lang=js& ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserList.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&":
/*!**********************************************************************************!*\
  !*** ./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca& ***!
  \**********************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_template_id_6cba3aca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./UserList.vue?vue&type=template&id=6cba3aca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_template_id_6cba3aca___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserList_vue_vue_type_template_id_6cba3aca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRow.vue":
/*!***********************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRow.vue ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserRow.vue?vue&type=template&id=77960baa&scoped=true& */ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&");
/* harmony import */ var _UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserRow.vue?vue&type=script&lang=js& */ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& */ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "77960baa",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/components/UserList/UserRow.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&":
/*!************************************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js& ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&":
/*!*********************************************************************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& ***!
  \*********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& */ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&");
/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_style_index_0_id_77960baa_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&":
/*!******************************************************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true& ***!
  \******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=template&id=77960baa&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRow_vue_vue_type_template_id_77960baa_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue":
/*!*****************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRowSimple.vue ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true&");
/* harmony import */ var _UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=script&lang=js& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css& */ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");






/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
  _UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
  _UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  "ff154a08",
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/components/UserList/UserRowSimple.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&":
/*!******************************************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css&":
/*!**************************************************************************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css& ***!
  \**************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css& */ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css&");
/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_style_index_0_id_ff154a08_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ "./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true&":
/*!************************************************************************************************************!*\
  !*** ./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true& ***!
  \************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_UserRowSimple_vue_vue_type_template_id_ff154a08_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./apps/settings/src/mixins/UserRowMixin.js":
/*!**************************************************!*\
  !*** ./apps/settings/src/mixins/UserRowMixin.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

/**
 * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
 *
 * @author John Molakvoæ <skjnldsv@protonmail.com>
 *
 * @license GNU AGPL version 3 or any later version
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 */
/* harmony default export */ __webpack_exports__["default"] = ({
  props: {
    user: {
      type: Object,
      required: true
    },
    settings: {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    groups: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    subAdminsGroups: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    quotaOptions: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    showConfig: {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    languages: {
      type: Array,
      required: true
    },
    externalActions: {
      type: Array,
      default: function _default() {
        return [];
      }
    }
  },
  computed: {
    /* GROUPS MANAGEMENT */
    userGroups: function userGroups() {
      var _this = this;

      var userGroups = this.groups.filter(function (group) {
        return _this.user.groups.includes(group.id);
      });
      return userGroups;
    },
    userSubAdminsGroups: function userSubAdminsGroups() {
      var _this2 = this;

      var userSubAdminsGroups = this.subAdminsGroups.filter(function (group) {
        return _this2.user.subadmin.includes(group.id);
      });
      return userSubAdminsGroups;
    },
    availableGroups: function availableGroups() {
      var _this3 = this;

      return this.groups.map(function (group) {
        // clone object because we don't want
        // to edit the original groups
        var groupClone = Object.assign({}, group); // two settings here:
        // 1. user NOT in group but no permission to add
        // 2. user is in group but no permission to remove

        groupClone.$isDisabled = group.canAdd === false && !_this3.user.groups.includes(group.id) || group.canRemove === false && _this3.user.groups.includes(group.id);
        return groupClone;
      });
    },

    /* QUOTA MANAGEMENT */
    usedSpace: function usedSpace() {
      if (this.user.quota.used) {
        return t('settings', '{size} used', {
          size: OC.Util.humanFileSize(this.user.quota.used)
        });
      }

      return t('settings', '{size} used', {
        size: OC.Util.humanFileSize(0)
      });
    },
    usedQuota: function usedQuota() {
      var quota = this.user.quota.quota;

      if (quota > 0) {
        quota = Math.min(100, Math.round(this.user.quota.used / quota * 100));
      } else {
        var usedInGB = this.user.quota.used / (10 * Math.pow(2, 30)); // asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota

        quota = 95 * (1 - 1 / (usedInGB + 1));
      }

      return isNaN(quota) ? 0 : quota;
    },
    // Mapping saved values to objects
    userQuota: function userQuota() {
      if (this.user.quota.quota >= 0) {
        // if value is valid, let's map the quotaOptions or return custom quota
        var humanQuota = OC.Util.humanFileSize(this.user.quota.quota);
        var userQuota = this.quotaOptions.find(function (quota) {
          return quota.id === humanQuota;
        });
        return userQuota || {
          id: humanQuota,
          label: humanQuota
        };
      } else if (this.user.quota.quota === 'default') {
        // default quota is replaced by the proper value on load
        return this.quotaOptions[0];
      }

      return this.quotaOptions[1]; // unlimited
    },

    /* PASSWORD POLICY? */
    minPasswordLength: function minPasswordLength() {
      return this.$store.getters.getPasswordPolicyMinLength;
    },

    /* LANGUAGE */
    userLanguage: function userLanguage() {
      var _this4 = this;

      var availableLanguages = this.languages[0].languages.concat(this.languages[1].languages);
      var userLang = availableLanguages.find(function (lang) {
        return lang.code === _this4.user.language;
      });

      if (_typeof(userLang) !== 'object' && this.user.language !== '') {
        return {
          code: this.user.language,
          name: this.user.language
        };
      } else if (this.user.language === '') {
        return false;
      }

      return userLang;
    },

    /* LAST LOGIN */
    userLastLoginTooltip: function userLastLoginTooltip() {
      if (this.user.lastLogin > 0) {
        return OC.Util.formatDate(this.user.lastLogin);
      }

      return '';
    },
    userLastLogin: function userLastLogin() {
      if (this.user.lastLogin > 0) {
        return OC.Util.relativeModifiedDate(this.user.lastLogin);
      }

      return t('settings', 'Never');
    }
  },
  methods: {
    /**
     * Generate avatar url
     *
     * @param {string} user The user name
     * @param {int} size Size integer, default 32
     * @returns {string}
     */
    generateAvatar: function generateAvatar(user) {
      var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;
      return OC.generateUrl('/avatar/{user}/{size}?v={version}', {
        user: user,
        size: size,
        version: oc_userconfig.avatar.version
      });
    }
  }
});

/***/ }),

/***/ "./apps/settings/src/views/Users.vue":
/*!*******************************************!*\
  !*** ./apps/settings/src/views/Users.vue ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Users_vue_vue_type_template_id_889b7562___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Users.vue?vue&type=template&id=889b7562& */ "./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&");
/* harmony import */ var _Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Users.vue?vue&type=script&lang=js& */ "./apps/settings/src/views/Users.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
  _Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _Users_vue_vue_type_template_id_889b7562___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Users_vue_vue_type_template_id_889b7562___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "apps/settings/src/views/Users.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "./apps/settings/src/views/Users.vue?vue&type=script&lang=js&":
/*!********************************************************************!*\
  !*** ./apps/settings/src/views/Users.vue?vue&type=script&lang=js& ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=script&lang=js&");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&":
/*!**************************************************************************!*\
  !*** ./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562& ***!
  \**************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_889b7562___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./Users.vue?vue&type=template&id=889b7562& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_889b7562___WEBPACK_IMPORTED_MODULE_0__["render"]; });

/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Users_vue_vue_type_template_id_889b7562___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=script&lang=js&":
/*!**************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList.vue?vue&type=script&lang=js& ***!
  \**************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _UserList_UserRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserList/UserRow */ "./apps/settings/src/components/UserList/UserRow.vue");
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! nextcloud-vue */ "./node_modules/nextcloud-vue/dist/ncvuecomponents.js");
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-infinite-loading */ "./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js");
/* harmony import */ var vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




var unlimitedQuota = {
  id: 'none',
  label: t('settings', 'Unlimited')
};
var defaultQuota = {
  id: 'default',
  label: t('settings', 'Default quota')
};
var newUser = {
  id: '',
  displayName: '',
  password: '',
  mailAddress: '',
  groups: [],
  subAdminsGroups: [],
  quota: defaultQuota,
  language: {
    code: 'en',
    name: t('settings', 'Default language')
  }
};
/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'UserList',
  components: {
    userRow: _UserList_UserRow__WEBPACK_IMPORTED_MODULE_0__["default"],
    Multiselect: nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__["Multiselect"],
    InfiniteLoading: vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2___default.a,
    Actions: nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__["Actions"],
    ActionButton: nextcloud_vue__WEBPACK_IMPORTED_MODULE_1__["ActionButton"]
  },
  props: {
    users: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    showConfig: {
      type: Object,
      required: true
    },
    selectedGroup: {
      type: String,
      default: null
    },
    externalActions: {
      type: Array,
      default: function _default() {
        return [];
      }
    }
  },
  data: function data() {
    return {
      unlimitedQuota: unlimitedQuota,
      defaultQuota: defaultQuota,
      loading: {
        all: false,
        groups: false
      },
      scrolled: false,
      searchQuery: '',
      newUser: Object.assign({}, newUser)
    };
  },
  computed: {
    settings: function settings() {
      return this.$store.getters.getServerData;
    },
    filteredUsers: function filteredUsers() {
      if (this.selectedGroup === 'disabled') {
        return this.users.filter(function (user) {
          return user.enabled === false;
        });
      }

      if (!this.settings.isAdmin) {
        // we don't want subadmins to edit themselves
        return this.users.filter(function (user) {
          return user.enabled !== false && user.id !== OC.getCurrentUser().uid;
        });
      }

      return this.users.filter(function (user) {
        return user.enabled !== false;
      });
    },
    groups: function groups() {
      // data provided php side + remove the disabled group
      return this.$store.getters.getGroups.filter(function (group) {
        return group.id !== 'disabled';
      }).sort(function (a, b) {
        return a.name.localeCompare(b.name);
      });
    },
    canAddGroups: function canAddGroups() {
      // disabled if no permission to add new users to group
      return this.groups.map(function (group) {
        // clone object because we don't want
        // to edit the original groups
        group = Object.assign({}, group);
        group.$isDisabled = group.canAdd === false;
        return group;
      });
    },
    subAdminsGroups: function subAdminsGroups() {
      // data provided php side
      return this.$store.getters.getSubadminGroups;
    },
    quotaOptions: function quotaOptions() {
      // convert the preset array into objects
      var quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) {
        return acc.concat({
          id: cur,
          label: cur
        });
      }, []); // add default presets

      quotaPreset.unshift(this.unlimitedQuota);
      quotaPreset.unshift(this.defaultQuota);
      return quotaPreset;
    },
    minPasswordLength: function minPasswordLength() {
      return this.$store.getters.getPasswordPolicyMinLength;
    },
    usersOffset: function usersOffset() {
      return this.$store.getters.getUsersOffset;
    },
    usersLimit: function usersLimit() {
      return this.$store.getters.getUsersLimit;
    },
    usersCount: function usersCount() {
      return this.users.length;
    },

    /* LANGUAGES */
    languages: function languages() {
      return [{
        label: t('settings', 'Common languages'),
        languages: this.settings.languages.commonlanguages
      }, {
        label: t('settings', 'All languages'),
        languages: this.settings.languages.languages
      }];
    }
  },
  watch: {
    // watch url change and group select
    selectedGroup: function selectedGroup(val, old) {
      // if selected is the disabled group but it's empty
      this.redirectIfDisabled();
      this.$store.commit('resetUsers');
      this.$refs.infiniteLoading.stateChanger.reset();
      this.setNewUserDefaultGroup(val);
    },
    // make sure the infiniteLoading state is changed if we manually
    // add/remove data from the store
    usersCount: function usersCount(val, old) {
      // deleting the last user, reset the list
      if (val === 0 && old === 1) {
        this.$refs.infiniteLoading.stateChanger.reset(); // adding the first user, warn the infiniteLoader that
        // the list is not empty anymore (we don't fetch the newly
        // added user as we already have all the info we need)
      } else if (val === 1 && old === 0) {
        this.$refs.infiniteLoading.stateChanger.loaded();
      }
    }
  },
  mounted: function mounted() {
    if (!this.settings.canChangePassword) {
      OC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));
    }
    /**
     * Reset and init new user form
     */


    this.resetForm();
    /**
     * Register search
     */

    this.userSearch = new OCA.Search(this.search, this.resetSearch);
    /**
     * If disabled group but empty, redirect
     */

    this.redirectIfDisabled();
  },
  methods: {
    onScroll: function onScroll(event) {
      this.scrolled = event.target.scrollTo > 0;
    },

    /**
     * Validate quota string to make sure it's a valid human file size
     *
     * @param {string} quota Quota in readable format '5 GB'
     * @returns {Object}
     */
    validateQuota: function validateQuota(quota) {
      // only used for new presets sent through @Tag
      var validQuota = OC.Util.computerFileSize(quota);

      if (validQuota !== null && validQuota >= 0) {
        // unify format output
        quota = OC.Util.humanFileSize(OC.Util.computerFileSize(quota));
        this.newUser.quota = {
          id: quota,
          label: quota
        };
        return this.newUser.quota;
      } // Default is unlimited


      this.newUser.quota = this.quotaOptions[0];
      return this.quotaOptions[0];
    },
    infiniteHandler: function infiniteHandler($state) {
      this.$store.dispatch('getUsers', {
        offset: this.usersOffset,
        limit: this.usersLimit,
        group: this.selectedGroup !== 'disabled' ? this.selectedGroup : '',
        search: this.searchQuery
      }).then(function (response) {
        response ? $state.loaded() : $state.complete();
      });
    },

    /* SEARCH */
    search: function search(query) {
      this.searchQuery = query;
      this.$store.commit('resetUsers');
      this.$refs.infiniteLoading.stateChanger.reset();
    },
    resetSearch: function resetSearch() {
      this.search('');
    },
    resetForm: function resetForm() {
      // revert form to original state
      this.newUser = Object.assign({}, newUser);
      /**
       * Init default language from server data. The use of this.settings
       * requires a computed variable, which break the v-model binding of the form,
       * this is a much easier solution than getter and setter on a computed var
       */

      if (this.settings.defaultLanguage) {
        vue__WEBPACK_IMPORTED_MODULE_3__["default"].set(this.newUser.language, 'code', this.settings.defaultLanguage);
      }
      /**
       * In case the user directly loaded the user list within a group
       * the watch won't be triggered. We need to initialize it.
       */


      this.setNewUserDefaultGroup(this.selectedGroup);
      this.loading.all = false;
    },
    createUser: function createUser() {
      var _this = this;

      this.loading.all = true;
      this.$store.dispatch('addUser', {
        userid: this.newUser.id,
        password: this.newUser.password,
        displayName: this.newUser.displayName,
        email: this.newUser.mailAddress,
        groups: this.newUser.groups.map(function (group) {
          return group.id;
        }),
        subadmin: this.newUser.subAdminsGroups.map(function (group) {
          return group.id;
        }),
        quota: this.newUser.quota.id,
        language: this.newUser.language.code
      }).then(function () {
        _this.resetForm();

        _this.$refs.newusername.focus();
      }).catch(function (error) {
        _this.loading.all = false;

        if (error.response && error.response.data && error.response.data.ocs && error.response.data.ocs.meta) {
          var statuscode = error.response.data.ocs.meta.statuscode;

          if (statuscode === 102) {
            // wrong username
            _this.$refs.newusername.focus();
          } else if (statuscode === 107) {
            // wrong password
            _this.$refs.newuserpassword.focus();
          }
        }
      });
    },
    setNewUserDefaultGroup: function setNewUserDefaultGroup(value) {
      if (value && value.length > 0) {
        // setting new user default group to the current selected one
        var currentGroup = this.groups.find(function (group) {
          return group.id === value;
        });

        if (currentGroup) {
          this.newUser.groups = [currentGroup];
          return;
        }
      } // fallback, empty selected group


      this.newUser.groups = [];
    },

    /**
     * Create a new group
     *
     * @param {string} gid Group id
     * @returns {Promise}
     */
    createGroup: function createGroup(gid) {
      var _this2 = this;

      this.loading.groups = true;
      this.$store.dispatch('addGroup', gid).then(function (group) {
        _this2.newUser.groups.push(_this2.groups.find(function (group) {
          return group.id === gid;
        }));

        _this2.loading.groups = false;
      }).catch(function () {
        _this2.loading.groups = false;
      });
      return this.$store.getters.getGroups[this.groups.length];
    },

    /**
     * If the selected group is the disabled group but the count is 0
     * redirect to the all users page.
     * * we only check for 0 because we don't have the count on ldap
     * * and we therefore set the usercount to -1 in this specific case
     */
    redirectIfDisabled: function redirectIfDisabled() {
      var allGroups = this.$store.getters.getGroups;

      if (this.selectedGroup === 'disabled' && allGroups.findIndex(function (group) {
        return group.id === 'disabled' && group.usercount === 0;
      }) > -1) {
        // disabled group is empty, redirection to all users
        this.$router.push({
          name: 'users'
        });
        this.$refs.infiniteLoading.stateChanger.reset();
      }
    },
    onClose: function onClose() {
      this.showConfig.showNewUserForm = false;
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js&":
/*!**********************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=script&lang=js& ***!
  \**********************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-click-outside */ "./node_modules/vue-click-outside/index.js");
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_click_outside__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! v-tooltip */ "./node_modules/v-tooltip/dist/v-tooltip.esm.js");
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! nextcloud-vue */ "./node_modules/nextcloud-vue/dist/ncvuecomponents.js");
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _UserRowSimple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./UserRowSimple */ "./apps/settings/src/components/UserList/UserRowSimple.vue");
/* harmony import */ var _mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/UserRowMixin */ "./apps/settings/src/mixins/UserRowMixin.js");
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//






vue__WEBPACK_IMPORTED_MODULE_1__["default"].use(v_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"]);
/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'UserRow',
  components: {
    UserRowSimple: _UserRowSimple__WEBPACK_IMPORTED_MODULE_4__["default"],
    PopoverMenu: nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["PopoverMenu"],
    Actions: nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["Actions"],
    ActionButton: nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["ActionButton"],
    Multiselect: nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__["Multiselect"]
  },
  directives: {
    ClickOutside: vue_click_outside__WEBPACK_IMPORTED_MODULE_0___default.a
  },
  mixins: [_mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_5__["default"]],
  props: {
    user: {
      type: Object,
      required: true
    },
    settings: {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    groups: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    subAdminsGroups: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    quotaOptions: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    showConfig: {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    languages: {
      type: Array,
      required: true
    },
    externalActions: {
      type: Array,
      default: function _default() {
        return [];
      }
    }
  },
  data: function data() {
    return {
      rand: parseInt(Math.random() * 1000),
      openedMenu: false,
      feedbackMessage: '',
      editing: false,
      loading: {
        all: false,
        displayName: false,
        password: false,
        mailAddress: false,
        groups: false,
        subadmins: false,
        quota: false,
        delete: false,
        disable: false,
        languages: false,
        wipe: false
      }
    };
  },
  computed: {
    /* USER POPOVERMENU ACTIONS */
    userActions: function userActions() {
      var actions = [{
        icon: 'icon-delete',
        text: t('settings', 'Delete user'),
        action: this.deleteUser
      }, {
        icon: 'icon-delete',
        text: t('settings', 'Wipe all devices'),
        action: this.wipeUserDevices
      }, {
        icon: this.user.enabled ? 'icon-close' : 'icon-add',
        text: this.user.enabled ? t('settings', 'Disable user') : t('settings', 'Enable user'),
        action: this.enableDisableUser
      }];

      if (this.user.email !== null && this.user.email !== '') {
        actions.push({
          icon: 'icon-mail',
          text: t('settings', 'Resend welcome email'),
          action: this.sendWelcomeMail
        });
      }

      return actions.concat(this.externalActions);
    }
  },
  methods: {
    /* MENU HANDLING */
    toggleMenu: function toggleMenu() {
      this.openedMenu = !this.openedMenu;
    },
    hideMenu: function hideMenu() {
      this.openedMenu = false;
    },
    wipeUserDevices: function wipeUserDevices() {
      var _this = this;

      var userid = this.user.id;
      OC.dialogs.confirmDestructive(t('settings', 'In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.', {
        userid: userid
      }), t('settings', 'Remote wipe of devices'), {
        type: OC.dialogs.YES_NO_BUTTONS,
        confirm: t('settings', 'Wipe {userid}\'s devices', {
          userid: userid
        }),
        confirmClasses: 'error',
        cancel: t('settings', 'Cancel')
      }, function (result) {
        if (result) {
          _this.loading.wipe = true;
          _this.loading.all = true;

          _this.$store.dispatch('wipeUserDevices', userid).then(function () {
            _this.loading.wipe = false;
            _this.loading.all = false;
          });
        }
      }, true);
    },
    deleteUser: function deleteUser() {
      var _this2 = this;

      var userid = this.user.id;
      OC.dialogs.confirmDestructive(t('settings', 'Fully delete {userid}\'s account including all their personal files, app data, etc.', {
        userid: userid
      }), t('settings', 'Account deletion'), {
        type: OC.dialogs.YES_NO_BUTTONS,
        confirm: t('settings', 'Delete {userid}\'s account', {
          userid: userid
        }),
        confirmClasses: 'error',
        cancel: t('settings', 'Cancel')
      }, function (result) {
        if (result) {
          _this2.loading.delete = true;
          _this2.loading.all = true;
          return _this2.$store.dispatch('deleteUser', userid).then(function () {
            _this2.loading.delete = false;
            _this2.loading.all = false;
          });
        }
      }, true);
    },
    enableDisableUser: function enableDisableUser() {
      var _this3 = this;

      this.loading.delete = true;
      this.loading.all = true;
      var userid = this.user.id;
      var enabled = !this.user.enabled;
      return this.$store.dispatch('enableDisableUser', {
        userid: userid,
        enabled: enabled
      }).then(function () {
        _this3.loading.delete = false;
        _this3.loading.all = false;
      });
    },

    /**
    	 * Set user displayName
    	 *
    	 * @param {string} displayName The display name
    	 */
    updateDisplayName: function updateDisplayName() {
      var _this4 = this;

      var displayName = this.$refs.displayName.value;
      this.loading.displayName = true;
      this.$store.dispatch('setUserData', {
        userid: this.user.id,
        key: 'displayname',
        value: displayName
      }).then(function () {
        _this4.loading.displayName = false;
        _this4.$refs.displayName.value = displayName;
      });
    },

    /**
    	 * Set user password
    	 *
    	 * @param {string} password The email adress
    	 */
    updatePassword: function updatePassword() {
      var _this5 = this;

      var password = this.$refs.password.value;
      this.loading.password = true;
      this.$store.dispatch('setUserData', {
        userid: this.user.id,
        key: 'password',
        value: password
      }).then(function () {
        _this5.loading.password = false;
        _this5.$refs.password.value = ''; // empty & show placeholder
      });
    },

    /**
    	 * Set user mailAddress
    	 *
    	 * @param {string} mailAddress The email adress
    	 */
    updateEmail: function updateEmail() {
      var _this6 = this;

      var mailAddress = this.$refs.mailAddress.value;
      this.loading.mailAddress = true;
      this.$store.dispatch('setUserData', {
        userid: this.user.id,
        key: 'email',
        value: mailAddress
      }).then(function () {
        _this6.loading.mailAddress = false;
        _this6.$refs.mailAddress.value = mailAddress;
      });
    },

    /**
    	 * Create a new group and add user to it
    	 *
    	 * @param {string} gid Group id
    	 */
    createGroup: function () {
      var _createGroup = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee(gid) {
        var userid;
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                this.loading = {
                  groups: true,
                  subadmins: true
                };
                _context.prev = 1;
                _context.next = 4;
                return this.$store.dispatch('addGroup', gid);

              case 4:
                userid = this.user.id;
                _context.next = 7;
                return this.$store.dispatch('addUserGroup', {
                  userid: userid,
                  gid: gid
                });

              case 7:
                _context.next = 12;
                break;

              case 9:
                _context.prev = 9;
                _context.t0 = _context["catch"](1);
                console.error(_context.t0);

              case 12:
                _context.prev = 12;
                this.loading = {
                  groups: false,
                  subadmins: false
                };
                return _context.finish(12);

              case 15:
                return _context.abrupt("return", this.$store.getters.getGroups[this.groups.length]);

              case 16:
              case "end":
                return _context.stop();
            }
          }
        }, _callee, this, [[1, 9, 12, 15]]);
      }));

      function createGroup(_x) {
        return _createGroup.apply(this, arguments);
      }

      return createGroup;
    }(),

    /**
    	 * Add user to group
    	 *
    	 * @param {object} group Group object
    	 */
    addUserGroup: function () {
      var _addUserGroup = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee2(group) {
        var userid, gid;
        return regeneratorRuntime.wrap(function _callee2$(_context2) {
          while (1) {
            switch (_context2.prev = _context2.next) {
              case 0:
                if (!(group.canAdd === false)) {
                  _context2.next = 2;
                  break;
                }

                return _context2.abrupt("return", false);

              case 2:
                this.loading.groups = true;
                userid = this.user.id;
                gid = group.id;
                _context2.prev = 5;
                _context2.next = 8;
                return this.$store.dispatch('addUserGroup', {
                  userid: userid,
                  gid: gid
                });

              case 8:
                _context2.next = 13;
                break;

              case 10:
                _context2.prev = 10;
                _context2.t0 = _context2["catch"](5);
                console.error(_context2.t0);

              case 13:
                _context2.prev = 13;
                this.loading.groups = false;
                return _context2.finish(13);

              case 16:
              case "end":
                return _context2.stop();
            }
          }
        }, _callee2, this, [[5, 10, 13, 16]]);
      }));

      function addUserGroup(_x2) {
        return _addUserGroup.apply(this, arguments);
      }

      return addUserGroup;
    }(),

    /**
    	 * Remove user from group
    	 *
    	 * @param {object} group Group object
    	 */
    removeUserGroup: function () {
      var _removeUserGroup = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee3(group) {
        var userid, gid;
        return regeneratorRuntime.wrap(function _callee3$(_context3) {
          while (1) {
            switch (_context3.prev = _context3.next) {
              case 0:
                if (!(group.canRemove === false)) {
                  _context3.next = 2;
                  break;
                }

                return _context3.abrupt("return", false);

              case 2:
                this.loading.groups = true;
                userid = this.user.id;
                gid = group.id;
                _context3.prev = 5;
                _context3.next = 8;
                return this.$store.dispatch('removeUserGroup', {
                  userid: userid,
                  gid: gid
                });

              case 8:
                this.loading.groups = false; // remove user from current list if current list is the removed group

                if (this.$route.params.selectedGroup === gid) {
                  this.$store.commit('deleteUser', userid);
                }

                _context3.next = 15;
                break;

              case 12:
                _context3.prev = 12;
                _context3.t0 = _context3["catch"](5);
                this.loading.groups = false;

              case 15:
              case "end":
                return _context3.stop();
            }
          }
        }, _callee3, this, [[5, 12]]);
      }));

      function removeUserGroup(_x3) {
        return _removeUserGroup.apply(this, arguments);
      }

      return removeUserGroup;
    }(),

    /**
    	 * Add user to group
    	 *
    	 * @param {object} group Group object
    	 */
    addUserSubAdmin: function () {
      var _addUserSubAdmin = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee4(group) {
        var userid, gid;
        return regeneratorRuntime.wrap(function _callee4$(_context4) {
          while (1) {
            switch (_context4.prev = _context4.next) {
              case 0:
                this.loading.subadmins = true;
                userid = this.user.id;
                gid = group.id;
                _context4.prev = 3;
                _context4.next = 6;
                return this.$store.dispatch('addUserSubAdmin', {
                  userid: userid,
                  gid: gid
                });

              case 6:
                this.loading.subadmins = false;
                _context4.next = 12;
                break;

              case 9:
                _context4.prev = 9;
                _context4.t0 = _context4["catch"](3);
                console.error(_context4.t0);

              case 12:
              case "end":
                return _context4.stop();
            }
          }
        }, _callee4, this, [[3, 9]]);
      }));

      function addUserSubAdmin(_x4) {
        return _addUserSubAdmin.apply(this, arguments);
      }

      return addUserSubAdmin;
    }(),

    /**
    	 * Remove user from group
    	 *
    	 * @param {object} group Group object
    	 */
    removeUserSubAdmin: function () {
      var _removeUserSubAdmin = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee5(group) {
        var userid, gid;
        return regeneratorRuntime.wrap(function _callee5$(_context5) {
          while (1) {
            switch (_context5.prev = _context5.next) {
              case 0:
                this.loading.subadmins = true;
                userid = this.user.id;
                gid = group.id;
                _context5.prev = 3;
                _context5.next = 6;
                return this.$store.dispatch('removeUserSubAdmin', {
                  userid: userid,
                  gid: gid
                });

              case 6:
                _context5.next = 11;
                break;

              case 8:
                _context5.prev = 8;
                _context5.t0 = _context5["catch"](3);
                console.error(_context5.t0);

              case 11:
                _context5.prev = 11;
                this.loading.subadmins = false;
                return _context5.finish(11);

              case 14:
              case "end":
                return _context5.stop();
            }
          }
        }, _callee5, this, [[3, 8, 11, 14]]);
      }));

      function removeUserSubAdmin(_x5) {
        return _removeUserSubAdmin.apply(this, arguments);
      }

      return removeUserSubAdmin;
    }(),

    /**
    	 * Dispatch quota set request
    	 *
    	 * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}
    	 * @returns {string}
    	 */
    setUserQuota: function () {
      var _setUserQuota = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee6() {
        var quota,
            _args6 = arguments;
        return regeneratorRuntime.wrap(function _callee6$(_context6) {
          while (1) {
            switch (_context6.prev = _context6.next) {
              case 0:
                quota = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : 'none';
                this.loading.quota = true; // ensure we only send the preset id

                quota = quota.id ? quota.id : quota;
                _context6.prev = 3;
                _context6.next = 6;
                return this.$store.dispatch('setUserData', {
                  userid: this.user.id,
                  key: 'quota',
                  value: quota
                });

              case 6:
                _context6.next = 11;
                break;

              case 8:
                _context6.prev = 8;
                _context6.t0 = _context6["catch"](3);
                console.error(_context6.t0);

              case 11:
                _context6.prev = 11;
                this.loading.quota = false;
                return _context6.finish(11);

              case 14:
                return _context6.abrupt("return", quota);

              case 15:
              case "end":
                return _context6.stop();
            }
          }
        }, _callee6, this, [[3, 8, 11, 14]]);
      }));

      function setUserQuota() {
        return _setUserQuota.apply(this, arguments);
      }

      return setUserQuota;
    }(),

    /**
    	 * Validate quota string to make sure it's a valid human file size
    	 *
    	 * @param {string} quota Quota in readable format '5 GB'
    	 * @returns {Promise|boolean}
    	 */
    validateQuota: function validateQuota(quota) {
      // only used for new presets sent through @Tag
      var validQuota = OC.Util.computerFileSize(quota);

      if (validQuota !== null && validQuota >= 0) {
        // unify format output
        return this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));
      } // if no valid do not change


      return false;
    },

    /**
    	 * Dispatch language set request
    	 *
    	 * @param {Object} lang language object {code:'en', name:'English'}
    	 * @returns {Object}
    	 */
    setUserLanguage: function () {
      var _setUserLanguage = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee7(lang) {
        return regeneratorRuntime.wrap(function _callee7$(_context7) {
          while (1) {
            switch (_context7.prev = _context7.next) {
              case 0:
                this.loading.languages = true; // ensure we only send the preset id

                _context7.prev = 1;
                _context7.next = 4;
                return this.$store.dispatch('setUserData', {
                  userid: this.user.id,
                  key: 'language',
                  value: lang.code
                });

              case 4:
                _context7.next = 9;
                break;

              case 6:
                _context7.prev = 6;
                _context7.t0 = _context7["catch"](1);
                console.error(_context7.t0);

              case 9:
                _context7.prev = 9;
                this.loading.languages = false;
                return _context7.finish(9);

              case 12:
                return _context7.abrupt("return", lang);

              case 13:
              case "end":
                return _context7.stop();
            }
          }
        }, _callee7, this, [[1, 6, 9, 12]]);
      }));

      function setUserLanguage(_x6) {
        return _setUserLanguage.apply(this, arguments);
      }

      return setUserLanguage;
    }(),

    /**
    	 * Dispatch new welcome mail request
    	 */
    sendWelcomeMail: function sendWelcomeMail() {
      var _this7 = this;

      this.loading.all = true;
      this.$store.dispatch('sendWelcomeMail', this.user.id).then(function (success) {
        if (success) {
          // Show feedback to indicate the success
          _this7.feedbackMessage = t('setting', 'Welcome mail sent!');
          setTimeout(function () {
            _this7.feedbackMessage = '';
          }, 2000);
        }

        _this7.loading.all = false;
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=script&lang=js& ***!
  \****************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! nextcloud-vue */ "./node_modules/nextcloud-vue/dist/ncvuecomponents.js");
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-click-outside */ "./node_modules/vue-click-outside/index.js");
/* harmony import */ var vue_click_outside__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue_click_outside__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.js");
/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_auth__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mixins/UserRowMixin */ "./apps/settings/src/mixins/UserRowMixin.js");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'UserRowSimple',
  components: {
    PopoverMenu: nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["PopoverMenu"],
    ActionButton: nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["ActionButton"],
    Actions: nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["Actions"]
  },
  directives: {
    ClickOutside: vue_click_outside__WEBPACK_IMPORTED_MODULE_1___default.a
  },
  mixins: [_mixins_UserRowMixin__WEBPACK_IMPORTED_MODULE_3__["default"]],
  props: {
    user: {
      type: Object,
      required: true
    },
    loading: {
      type: Object,
      required: true
    },
    showConfig: {
      type: Object,
      required: true
    },
    userActions: {
      type: Array,
      required: true
    },
    openedMenu: {
      type: Boolean,
      required: true
    },
    feedbackMessage: {
      type: String,
      required: true
    },
    subAdminsGroups: {
      type: Array,
      required: true
    },
    settings: {
      type: Object,
      required: true
    }
  },
  computed: {
    userGroupsLabels: function userGroupsLabels() {
      return this.userGroups.map(function (group) {
        return group.name;
      }).join(', ');
    },
    userSubAdminsGroupsLabels: function userSubAdminsGroupsLabels() {
      return this.userSubAdminsGroups.map(function (group) {
        return group.name;
      }).join(', ');
    },
    usedSpace: function usedSpace() {
      if (this.user.quota.used) {
        return t('settings', '{size} used', {
          size: OC.Util.humanFileSize(this.user.quota.used)
        });
      }

      return t('settings', '{size} used', {
        size: OC.Util.humanFileSize(0)
      });
    },
    canEdit: function canEdit() {
      return Object(_nextcloud_auth__WEBPACK_IMPORTED_MODULE_2__["getCurrentUser"])().uid !== this.user.id && this.user.id !== 'admin';
    }
  },
  methods: {
    hideMenu: function hideMenu() {
      this.$emit('hideMenu');
    },
    toggleEdit: function toggleEdit() {
      this.$emit('update:editing', true);
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=script&lang=js&":
/*!******************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/views/Users.vue?vue&type=script&lang=js& ***!
  \******************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var vue_localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-localstorage */ "./node_modules/vue-localstorage/dist/vue-local-storage.js");
/* harmony import */ var vue_localstorage__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue_localstorage__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! nextcloud-vue */ "./node_modules/nextcloud-vue/dist/ncvuecomponents.js");
/* harmony import */ var nextcloud_vue__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _components_UserList__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/UserList */ "./apps/settings/src/components/UserList.vue");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




vue__WEBPACK_IMPORTED_MODULE_0__["default"].use(vue_localstorage__WEBPACK_IMPORTED_MODULE_1___default.a);
/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'Users',
  components: {
    AppContent: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["AppContent"],
    AppNavigation: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["AppNavigation"],
    AppNavigationItem: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["AppNavigationItem"],
    AppNavigationNew: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["AppNavigationNew"],
    AppNavigationSettings: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["AppNavigationSettings"],
    Content: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["Content"],
    UserList: _components_UserList__WEBPACK_IMPORTED_MODULE_3__["default"],
    Multiselect: nextcloud_vue__WEBPACK_IMPORTED_MODULE_2__["Multiselect"]
  },
  props: {
    selectedGroup: {
      type: String,
      default: null
    }
  },
  data: function data() {
    return {
      // default quota is set to unlimited
      unlimitedQuota: {
        id: 'none',
        label: t('settings', 'Unlimited')
      },
      // temporary value used for multiselect change
      selectedQuota: false,
      externalActions: [],
      showAddGroupEntry: false,
      loadingAddGroup: false,
      showConfig: {
        showStoragePath: false,
        showUserBackend: false,
        showLastLogin: false,
        showNewUserForm: false,
        showLanguages: false
      }
    };
  },
  computed: {
    users: function users() {
      return this.$store.getters.getUsers;
    },
    usersOffset: function usersOffset() {
      return this.$store.getters.getUsersOffset;
    },
    usersLimit: function usersLimit() {
      return this.$store.getters.getUsersLimit;
    },
    // Local settings
    showLanguages: {
      get: function get() {
        return this.getLocalstorage('showLanguages');
      },
      set: function set(status) {
        this.setLocalStorage('showLanguages', status);
      }
    },
    showLastLogin: {
      get: function get() {
        return this.getLocalstorage('showLastLogin');
      },
      set: function set(status) {
        this.setLocalStorage('showLastLogin', status);
      }
    },
    showUserBackend: {
      get: function get() {
        return this.getLocalstorage('showUserBackend');
      },
      set: function set(status) {
        this.setLocalStorage('showUserBackend', status);
      }
    },
    showStoragePath: {
      get: function get() {
        return this.getLocalstorage('showStoragePath');
      },
      set: function set(status) {
        this.setLocalStorage('showStoragePath', status);
      }
    },
    userCount: function userCount() {
      return this.$store.getters.getUserCount;
    },
    settings: function settings() {
      return this.$store.getters.getServerData;
    },
    // default quota
    quotaOptions: function quotaOptions() {
      // convert the preset array into objects
      var quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) {
        return acc.concat({
          id: cur,
          label: cur
        });
      }, []); // add default presets

      quotaPreset.unshift(this.unlimitedQuota);
      return quotaPreset;
    },
    // mapping saved values to objects
    defaultQuota: {
      get: function get() {
        if (this.selectedQuota !== false) {
          return this.selectedQuota;
        }

        if (this.settings.defaultQuota !== this.unlimitedQuota.id && OC.Util.computerFileSize(this.settings.defaultQuota) >= 0) {
          // if value is valid, let's map the quotaOptions or return custom quota
          return {
            id: this.settings.defaultQuota,
            label: this.settings.defaultQuota
          };
        }

        return this.unlimitedQuota; // unlimited
      },
      set: function set(quota) {
        this.selectedQuota = quota;
      }
    },
    // BUILD APP NAVIGATION MENU OBJECT
    menu: function menu() {
      var _this = this;

      // Data provided php side
      var self = this;
      var groups = this.$store.getters.getGroups;
      groups = Array.isArray(groups) ? groups : []; // Map groups

      groups = groups.map(function (group) {
        var item = {};
        item.id = group.id.replace(' ', '_');
        item.key = item.id;
        item.utils = {}; // router link to

        item.router = {
          name: 'group',
          params: {
            selectedGroup: group.id
          }
        }; // group name

        item.text = group.name;
        item.title = group.name; // users count for all groups

        if (group.usercount - group.disabled > 0 || group.usercount === -1) {
          item.utils.counter = group.usercount - group.disabled;
        }

        if (item.id !== 'admin' && item.id !== 'disabled' && _this.settings.isAdmin) {
          // add delete button on real groups
          item.utils.actions = [{
            icon: 'icon-delete',
            text: t('settings', 'Remove group'),
            action: function action() {
              self.removeGroup(group.id);
            }
          }];
        }

        return item;
      }); // Every item is added on top of the array, so we're going backward
      // Groups, separator, disabled, admin, everyone
      // Add separator

      var realGroups = groups.find(function (group) {
        return group.id !== 'disabled' && group.id !== 'admin';
      });
      realGroups = typeof realGroups === 'undefined' ? [] : realGroups;
      realGroups = Array.isArray(realGroups) ? realGroups : [realGroups];

      if (realGroups.length > 0) {
        var separator = {
          caption: true,
          text: t('settings', 'Groups')
        };
        groups.unshift(separator);
      } // Adjust admin and disabled groups


      var adminGroup = groups.find(function (group) {
        return group.id === 'admin';
      });
      var disabledGroup = groups.find(function (group) {
        return group.id === 'disabled';
      }); // filter out admin and disabled

      groups = groups.filter(function (group) {
        return ['admin', 'disabled'].indexOf(group.id) === -1;
      });

      if (adminGroup && adminGroup.text) {
        adminGroup.text = t('settings', 'Admins'); // rename admin group

        adminGroup.icon = 'icon-user-admin'; // set icon

        groups.unshift(adminGroup); // add admin group if present
      }

      if (disabledGroup && disabledGroup.text) {
        disabledGroup.text = t('settings', 'Disabled users'); // rename disabled group

        disabledGroup.icon = 'icon-disabled-users'; // set icon

        if (disabledGroup.utils && (disabledGroup.utils.counter > 0 // add disabled if not empty
        || disabledGroup.utils.counter === -1) // add disabled if ldap enabled
        ) {
            groups.unshift(disabledGroup);

            if (disabledGroup.utils.counter === -1) {
              // hides the counter instead of showing -1
              delete disabledGroup.utils.counter;
            }
          }
      } // Add everyone group


      var everyoneGroup = {
        id: 'everyone',
        key: 'everyone',
        icon: 'icon-contacts-dark',
        router: {
          name: 'users'
        },
        text: t('settings', 'Everyone')
      }; // users count

      if (this.userCount > 0) {
        vue__WEBPACK_IMPORTED_MODULE_0__["default"].set(everyoneGroup, 'utils', {
          counter: this.userCount
        });
      }

      groups.unshift(everyoneGroup);
      var addGroup = {
        id: 'addgroup',
        key: 'addgroup',
        icon: 'icon-add',
        text: t('settings', 'Add group'),
        classes: this.loadingAddGroup ? 'icon-loading-small' : ''
      };

      if (this.showAddGroupEntry) {
        vue__WEBPACK_IMPORTED_MODULE_0__["default"].set(addGroup, 'edit', {
          text: t('settings', 'Add group'),
          action: this.createGroup,
          reset: function reset() {
            self.showAddGroupEntry = false;
          }
        });
        addGroup.classes = 'editing';
      } else {
        vue__WEBPACK_IMPORTED_MODULE_0__["default"].set(addGroup, 'action', function () {
          self.showAddGroupEntry = true; // focus input

          vue__WEBPACK_IMPORTED_MODULE_0__["default"].nextTick(function () {
            window.addgroup.querySelector('form > input[type="text"]').focus();
          });
        });
      }

      groups.unshift(addGroup);
      return groups;
    }
  },
  beforeMount: function beforeMount() {
    this.$store.commit('initGroups', {
      groups: this.$store.getters.getServerData.groups,
      orderBy: this.$store.getters.getServerData.sortGroups,
      userCount: this.$store.getters.getServerData.userCount
    });
    this.$store.dispatch('getPasswordPolicyMinLength');
  },
  created: function created() {
    // init the OCA.Settings.UserList object
    // and add the registerAction method
    Object.assign(OCA, {
      Settings: {
        UserList: {
          registerAction: this.registerAction
        }
      }
    });
  },
  methods: {
    toggleNewUserMenu: function toggleNewUserMenu() {
      this.showConfig.showNewUserForm = !this.showConfig.showNewUserForm;

      if (this.showConfig.showNewUserForm) {
        vue__WEBPACK_IMPORTED_MODULE_0__["default"].nextTick(function () {
          window.newusername.focus();
        });
      }
    },
    getLocalstorage: function getLocalstorage(key) {
      // force initialization
      var localConfig = this.$localStorage.get(key); // if localstorage is null, fallback to original values

      this.showConfig[key] = localConfig !== null ? localConfig === 'true' : this.showConfig[key];
      return this.showConfig[key];
    },
    setLocalStorage: function setLocalStorage(key, status) {
      this.showConfig[key] = status;
      this.$localStorage.set(key, status);
      return status;
    },
    removeGroup: function removeGroup(groupid) {
      var self = this; // TODO migrate to a vue js confirm dialog component

      OC.dialogs.confirm(t('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', {
        group: groupid
      }), t('settings', 'Please confirm the group removal '), function (success) {
        if (success) {
          self.$store.dispatch('removeGroup', groupid);
        }
      });
    },

    /**
     * Dispatch default quota set request
     *
     * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}
     */
    setDefaultQuota: function setDefaultQuota() {
      var _this2 = this;

      var quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none';
      this.$store.dispatch('setAppConfig', {
        app: 'files',
        key: 'default_quota',
        // ensure we only send the preset id
        value: quota.id ? quota.id : quota
      }).then(function () {
        if (_typeof(quota) !== 'object') {
          quota = {
            id: quota,
            label: quota
          };
        }

        _this2.defaultQuota = quota;
      });
    },

    /**
     * Validate quota string to make sure it's a valid human file size
     *
     * @param {string} quota Quota in readable format '5 GB'
     * @returns {Promise|boolean}
     */
    validateQuota: function validateQuota(quota) {
      // only used for new presets sent through @Tag
      var validQuota = OC.Util.computerFileSize(quota);

      if (validQuota === null) {
        return this.setDefaultQuota('none');
      } else {
        // unify format output
        return this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));
      }
    },

    /**
     * Register a new action for the user menu
     *
     * @param {string} icon the icon class
     * @param {string} text the text to display
     * @param {Function} action the function to run
     * @returns {Array}
     */
    registerAction: function registerAction(icon, text, action) {
      this.externalActions.push({
        icon: icon,
        text: text,
        action: action
      });
      return this.externalActions;
    },

    /**
     * Create a new group
     *
     * @param {Object} event The form submit event
     */
    createGroup: function createGroup(event) {
      var _this3 = this;

      var gid = event.target[0].value;
      this.loadingAddGroup = true;
      this.$store.dispatch('addGroup', gid).then(function () {
        _this3.showAddGroupEntry = false;
        _this3.loadingAddGroup = false;

        _this3.$router.push({
          name: 'group',
          params: {
            selectedGroup: gid
          }
        });
      }).catch(function () {
        _this3.loadingAddGroup = false;
      });
    }
  }
});

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".row--menu-opened[data-v-77960baa] {\n  z-index: 1 !important;\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css&":
/*!***************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css& ***!
  \***************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "\n.cellText[data-v-ff154a08] {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca&":
/*!****************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList.vue?vue&type=template&id=6cba3aca& ***!
  \****************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    {
      staticClass: "user-list-grid",
      attrs: { id: "app-content" },
      on: {
        "&scroll": function($event) {
          return _vm.onScroll($event)
        }
      }
    },
    [
      _c(
        "form",
        {
          directives: [
            {
              name: "show",
              rawName: "v-show",
              value: _vm.showConfig.showNewUserForm,
              expression: "showConfig.showNewUserForm"
            }
          ],
          staticClass: "row",
          class: { sticky: _vm.scrolled && _vm.showConfig.showNewUserForm },
          attrs: { id: "new-user", disabled: _vm.loading.all },
          on: {
            submit: function($event) {
              $event.preventDefault()
              return _vm.createUser($event)
            }
          }
        },
        [
          _c("div", {
            class: _vm.loading.all ? "icon-loading-small" : "icon-add"
          }),
          _vm._v(" "),
          _c("div", { staticClass: "name" }, [
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.newUser.id,
                  expression: "newUser.id"
                }
              ],
              ref: "newusername",
              attrs: {
                id: "newusername",
                disabled: _vm.settings.newUserGenerateUserID,
                placeholder: _vm.settings.newUserGenerateUserID
                  ? _vm.t("settings", "Will be autogenerated")
                  : _vm.t("settings", "Username"),
                autocapitalize: "none",
                autocomplete: "off",
                autocorrect: "off",
                name: "username",
                pattern: "[a-zA-Z0-9 _\\.@\\-']+",
                required: "",
                type: "text"
              },
              domProps: { value: _vm.newUser.id },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.newUser, "id", $event.target.value)
                }
              }
            }),
            _vm._v(" "),
            _c("div", { staticClass: "displayName" }, [
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.newUser.displayName,
                    expression: "newUser.displayName"
                  }
                ],
                attrs: {
                  id: "newdisplayname",
                  placeholder: _vm.t("settings", "Display name"),
                  autocapitalize: "none",
                  autocomplete: "off",
                  autocorrect: "off",
                  name: "displayname",
                  type: "text"
                },
                domProps: { value: _vm.newUser.displayName },
                on: {
                  input: function($event) {
                    if ($event.target.composing) {
                      return
                    }
                    _vm.$set(_vm.newUser, "displayName", $event.target.value)
                  }
                }
              })
            ])
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "password" }, [
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.newUser.password,
                  expression: "newUser.password"
                }
              ],
              ref: "newuserpassword",
              attrs: {
                id: "newuserpassword",
                minlength: _vm.minPasswordLength,
                placeholder: _vm.t("settings", "Password"),
                required: _vm.newUser.mailAddress === "",
                autocapitalize: "none",
                autocomplete: "new-password",
                autocorrect: "off",
                name: "password",
                type: "password"
              },
              domProps: { value: _vm.newUser.password },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.newUser, "password", $event.target.value)
                }
              }
            })
          ]),
          _vm._v(" "),
          _c("div", { staticClass: "mailAddress" }, [
            _c("input", {
              directives: [
                {
                  name: "model",
                  rawName: "v-model",
                  value: _vm.newUser.mailAddress,
                  expression: "newUser.mailAddress"
                }
              ],
              attrs: {
                id: "newemail",
                placeholder: _vm.t("settings", "Email"),
                required:
                  _vm.newUser.password === "" ||
                  _vm.settings.newUserRequireEmail,
                autocapitalize: "none",
                autocomplete: "off",
                autocorrect: "off",
                name: "email",
                type: "email"
              },
              domProps: { value: _vm.newUser.mailAddress },
              on: {
                input: function($event) {
                  if ($event.target.composing) {
                    return
                  }
                  _vm.$set(_vm.newUser, "mailAddress", $event.target.value)
                }
              }
            })
          ]),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "groups" },
            [
              !_vm.settings.isAdmin
                ? _c("input", {
                    class: { "icon-loading-small": _vm.loading.groups },
                    attrs: {
                      id: "newgroups",
                      required: !_vm.settings.isAdmin,
                      tabindex: "-1",
                      type: "text"
                    },
                    domProps: { value: _vm.newUser.groups }
                  })
                : _vm._e(),
              _vm._v(" "),
              _c(
                "Multiselect",
                {
                  staticClass: "multiselect-vue",
                  attrs: {
                    "close-on-select": false,
                    disabled: _vm.loading.groups || _vm.loading.all,
                    multiple: true,
                    options: _vm.canAddGroups,
                    placeholder: _vm.t("settings", "Add user in group"),
                    "tag-width": 60,
                    taggable: true,
                    label: "name",
                    "tag-placeholder": "create",
                    "track-by": "id"
                  },
                  on: { tag: _vm.createGroup },
                  model: {
                    value: _vm.newUser.groups,
                    callback: function($$v) {
                      _vm.$set(_vm.newUser, "groups", $$v)
                    },
                    expression: "newUser.groups"
                  }
                },
                [
                  _c(
                    "span",
                    { attrs: { slot: "noResult" }, slot: "noResult" },
                    [_vm._v(_vm._s(_vm.t("settings", "No results")))]
                  )
                ]
              )
            ],
            1
          ),
          _vm._v(" "),
          _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
            ? _c(
                "div",
                { staticClass: "subadmins" },
                [
                  _c(
                    "Multiselect",
                    {
                      staticClass: "multiselect-vue",
                      attrs: {
                        "close-on-select": false,
                        multiple: true,
                        options: _vm.subAdminsGroups,
                        placeholder: _vm.t("settings", "Set user as admin for"),
                        "tag-width": 60,
                        label: "name",
                        "track-by": "id"
                      },
                      model: {
                        value: _vm.newUser.subAdminsGroups,
                        callback: function($$v) {
                          _vm.$set(_vm.newUser, "subAdminsGroups", $$v)
                        },
                        expression: "newUser.subAdminsGroups"
                      }
                    },
                    [
                      _c(
                        "span",
                        { attrs: { slot: "noResult" }, slot: "noResult" },
                        [_vm._v(_vm._s(_vm.t("settings", "No results")))]
                      )
                    ]
                  )
                ],
                1
              )
            : _vm._e(),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "quota" },
            [
              _c("Multiselect", {
                staticClass: "multiselect-vue",
                attrs: {
                  "allow-empty": false,
                  options: _vm.quotaOptions,
                  placeholder: _vm.t("settings", "Select user quota"),
                  taggable: true,
                  label: "label",
                  "track-by": "id"
                },
                on: { tag: _vm.validateQuota },
                model: {
                  value: _vm.newUser.quota,
                  callback: function($$v) {
                    _vm.$set(_vm.newUser, "quota", $$v)
                  },
                  expression: "newUser.quota"
                }
              })
            ],
            1
          ),
          _vm._v(" "),
          _vm.showConfig.showLanguages
            ? _c(
                "div",
                { staticClass: "languages" },
                [
                  _c("Multiselect", {
                    staticClass: "multiselect-vue",
                    attrs: {
                      "allow-empty": false,
                      options: _vm.languages,
                      placeholder: _vm.t("settings", "Default language"),
                      "group-label": "label",
                      "group-values": "languages",
                      label: "name",
                      "track-by": "code"
                    },
                    model: {
                      value: _vm.newUser.language,
                      callback: function($$v) {
                        _vm.$set(_vm.newUser, "language", $$v)
                      },
                      expression: "newUser.language"
                    }
                  })
                ],
                1
              )
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showStoragePath
            ? _c("div", { staticClass: "storageLocation" })
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showUserBackend
            ? _c("div", { staticClass: "userBackend" })
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showLastLogin
            ? _c("div", { staticClass: "lastLogin" })
            : _vm._e(),
          _vm._v(" "),
          _c("div", { staticClass: "userActions" }, [
            _c("input", {
              staticClass: "button primary icon-checkmark-white has-tooltip",
              attrs: {
                id: "newsubmit",
                title: _vm.t("settings", "Add a new user"),
                type: "submit",
                value: ""
              }
            }),
            _vm._v(" "),
            _c(
              "div",
              { staticClass: "closeButton" },
              [
                _c(
                  "Actions",
                  [
                    _c(
                      "ActionButton",
                      {
                        attrs: { icon: "icon-close" },
                        on: { click: _vm.onClose }
                      },
                      [
                        _vm._v(
                          "\n\t\t\t\t\t\t" +
                            _vm._s(_vm.t("settings", "Close")) +
                            "\n\t\t\t\t\t"
                        )
                      ]
                    )
                  ],
                  1
                )
              ],
              1
            )
          ])
        ]
      ),
      _vm._v(" "),
      _c(
        "div",
        {
          staticClass: "row",
          class: { sticky: _vm.scrolled && !_vm.showConfig.showNewUserForm },
          attrs: { id: "grid-header" }
        },
        [
          _c("div", { staticClass: "avatar", attrs: { id: "headerAvatar" } }),
          _vm._v(" "),
          _c("div", { staticClass: "name", attrs: { id: "headerName" } }, [
            _vm._v(
              "\n\t\t\t" + _vm._s(_vm.t("settings", "Username")) + "\n\n\t\t\t"
            ),
            _c("div", { staticClass: "subtitle" }, [
              _vm._v(
                "\n\t\t\t\t" +
                  _vm._s(_vm.t("settings", "Display name")) +
                  "\n\t\t\t"
              )
            ])
          ]),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "password", attrs: { id: "headerPassword" } },
            [
              _vm._v(
                "\n\t\t\t" + _vm._s(_vm.t("settings", "Password")) + "\n\t\t"
              )
            ]
          ),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "mailAddress", attrs: { id: "headerAddress" } },
            [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Email")) + "\n\t\t")]
          ),
          _vm._v(" "),
          _c("div", { staticClass: "groups", attrs: { id: "headerGroups" } }, [
            _vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Groups")) + "\n\t\t")
          ]),
          _vm._v(" "),
          _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
            ? _c(
                "div",
                { staticClass: "subadmins", attrs: { id: "headerSubAdmins" } },
                [
                  _vm._v(
                    "\n\t\t\t" +
                      _vm._s(_vm.t("settings", "Group admin for")) +
                      "\n\t\t"
                  )
                ]
              )
            : _vm._e(),
          _vm._v(" "),
          _c("div", { staticClass: "quota", attrs: { id: "headerQuota" } }, [
            _vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Quota")) + "\n\t\t")
          ]),
          _vm._v(" "),
          _vm.showConfig.showLanguages
            ? _c(
                "div",
                { staticClass: "languages", attrs: { id: "headerLanguages" } },
                [
                  _vm._v(
                    "\n\t\t\t" +
                      _vm._s(_vm.t("settings", "Language")) +
                      "\n\t\t"
                  )
                ]
              )
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath
            ? _c("div", { staticClass: "headerUserBackend userBackend" }, [
                _vm.showConfig.showUserBackend
                  ? _c("div", { staticClass: "userBackend" }, [
                      _vm._v(
                        "\n\t\t\t\t" +
                          _vm._s(_vm.t("settings", "User backend")) +
                          "\n\t\t\t"
                      )
                    ])
                  : _vm._e(),
                _vm._v(" "),
                _vm.showConfig.showStoragePath
                  ? _c("div", { staticClass: "subtitle storageLocation" }, [
                      _vm._v(
                        "\n\t\t\t\t" +
                          _vm._s(_vm.t("settings", "Storage location")) +
                          "\n\t\t\t"
                      )
                    ])
                  : _vm._e()
              ])
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showLastLogin
            ? _c("div", { staticClass: "headerLastLogin lastLogin" }, [
                _vm._v(
                  "\n\t\t\t" +
                    _vm._s(_vm.t("settings", "Last login")) +
                    "\n\t\t"
                )
              ])
            : _vm._e(),
          _vm._v(" "),
          _c("div", { staticClass: "userActions" })
        ]
      ),
      _vm._v(" "),
      _vm._l(_vm.filteredUsers, function(user, key) {
        return _c("user-row", {
          key: key,
          attrs: {
            "external-actions": _vm.externalActions,
            groups: _vm.groups,
            languages: _vm.languages,
            "quota-options": _vm.quotaOptions,
            settings: _vm.settings,
            "show-config": _vm.showConfig,
            "sub-admins-groups": _vm.subAdminsGroups,
            user: user
          }
        })
      }),
      _vm._v(" "),
      _c(
        "InfiniteLoading",
        { ref: "infiniteLoading", on: { infinite: _vm.infiniteHandler } },
        [
          _c("div", { attrs: { slot: "spinner" }, slot: "spinner" }, [
            _c("div", { staticClass: "users-icon-loading icon-loading" })
          ]),
          _vm._v(" "),
          _c("div", { attrs: { slot: "no-more" }, slot: "no-more" }, [
            _c("div", { staticClass: "users-list-end" })
          ]),
          _vm._v(" "),
          _c("div", { attrs: { slot: "no-results" }, slot: "no-results" }, [
            _c("div", { attrs: { id: "emptycontent" } }, [
              _c("div", { staticClass: "icon-contacts-dark" }),
              _vm._v(" "),
              _c("h2", [_vm._v(_vm._s(_vm.t("settings", "No users in here")))])
            ])
          ])
        ]
      )
    ],
    2
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true&":
/*!************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=template&id=77960baa&scoped=true& ***!
  \************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return Object.keys(_vm.user).length === 1
    ? _c("div", { staticClass: "row", attrs: { "data-id": _vm.user.id } }, [
        _c(
          "div",
          {
            staticClass: "avatar",
            class: {
              "icon-loading-small":
                _vm.loading.delete || _vm.loading.disable || _vm.loading.wipe
            }
          },
          [
            !_vm.loading.delete && !_vm.loading.disable && !_vm.loading.wipe
              ? _c("img", {
                  attrs: {
                    src: _vm.generateAvatar(_vm.user.id, 32),
                    srcset:
                      _vm.generateAvatar(_vm.user.id, 64) +
                      " 2x, " +
                      _vm.generateAvatar(_vm.user.id, 128) +
                      " 4x",
                    alt: "",
                    height: "32",
                    width: "32"
                  }
                })
              : _vm._e()
          ]
        ),
        _vm._v(" "),
        _c("div", { staticClass: "name" }, [
          _vm._v("\n\t\t" + _vm._s(_vm.user.id) + "\n\t")
        ]),
        _vm._v(" "),
        _c("div", { staticClass: "obfuscated" }, [
          _vm._v(
            "\n\t\t" +
              _vm._s(
                _vm.t(
                  "settings",
                  "You do not have permissions to see the details of this user"
                )
              ) +
              "\n\t"
          )
        ])
      ])
    : !_vm.editing
    ? _c("UserRowSimple", {
        class: { "row--menu-opened": _vm.openedMenu },
        attrs: {
          editing: _vm.editing,
          "feedback-message": _vm.feedbackMessage,
          groups: _vm.groups,
          languages: _vm.languages,
          loading: _vm.loading,
          "opened-menu": _vm.openedMenu,
          settings: _vm.settings,
          "show-config": _vm.showConfig,
          "sub-admins-groups": _vm.subAdminsGroups,
          "user-actions": _vm.userActions,
          user: _vm.user
        },
        on: {
          "update:editing": function($event) {
            _vm.editing = $event
          },
          hideMenu: _vm.hideMenu,
          toggleMenu: _vm.toggleMenu
        }
      })
    : _c(
        "div",
        {
          staticClass: "row row--editable",
          class: {
            disabled: _vm.loading.delete || _vm.loading.disable,
            "row--menu-opened": _vm.openedMenu
          },
          attrs: { "data-id": _vm.user.id }
        },
        [
          _c(
            "div",
            {
              staticClass: "avatar",
              class: {
                "icon-loading-small":
                  _vm.loading.delete || _vm.loading.disable || _vm.loading.wipe
              }
            },
            [
              !_vm.loading.delete && !_vm.loading.disable && !_vm.loading.wipe
                ? _c("img", {
                    attrs: {
                      src: _vm.generateAvatar(_vm.user.id, 32),
                      srcset:
                        _vm.generateAvatar(_vm.user.id, 64) +
                        " 2x, " +
                        _vm.generateAvatar(_vm.user.id, 128) +
                        " 4x",
                      alt: "",
                      height: "32",
                      width: "32"
                    }
                  })
                : _vm._e()
            ]
          ),
          _vm._v(" "),
          _c("div", { staticClass: "displayName" }, [
            _c(
              "form",
              {
                staticClass: "displayName",
                class: { "icon-loading-small": _vm.loading.displayName },
                on: {
                  submit: function($event) {
                    $event.preventDefault()
                    return _vm.updateDisplayName($event)
                  }
                }
              },
              [
                _vm.user.backendCapabilities.setDisplayName
                  ? [
                      _vm.user.backendCapabilities.setDisplayName
                        ? _c("input", {
                            ref: "displayName",
                            attrs: {
                              id: "displayName" + _vm.user.id + _vm.rand,
                              disabled:
                                _vm.loading.displayName || _vm.loading.all,
                              autocapitalize: "off",
                              autocomplete: "new-password",
                              autocorrect: "off",
                              spellcheck: "false",
                              type: "text"
                            },
                            domProps: { value: _vm.user.displayname }
                          })
                        : _vm._e(),
                      _vm._v(" "),
                      _vm.user.backendCapabilities.setDisplayName
                        ? _c("input", {
                            staticClass: "icon-confirm",
                            attrs: { type: "submit", value: "" }
                          })
                        : _vm._e()
                    ]
                  : _c("div", {
                      directives: [
                        {
                          name: "tooltip",
                          rawName: "v-tooltip.auto",
                          value: _vm.t(
                            "settings",
                            "The backend does not support changing the display name"
                          ),
                          expression:
                            "t('settings', 'The backend does not support changing the display name')",
                          modifiers: { auto: true }
                        }
                      ],
                      staticClass: "name"
                    })
              ],
              2
            )
          ]),
          _vm._v(" "),
          _vm.settings.canChangePassword &&
          _vm.user.backendCapabilities.setPassword
            ? _c(
                "form",
                {
                  staticClass: "password",
                  class: { "icon-loading-small": _vm.loading.password },
                  on: {
                    submit: function($event) {
                      $event.preventDefault()
                      return _vm.updatePassword($event)
                    }
                  }
                },
                [
                  _c("input", {
                    ref: "password",
                    attrs: {
                      id: "password" + _vm.user.id + _vm.rand,
                      disabled: _vm.loading.password || _vm.loading.all,
                      minlength: _vm.minPasswordLength,
                      placeholder: _vm.t("settings", "Add new password"),
                      autocapitalize: "off",
                      autocomplete: "new-password",
                      autocorrect: "off",
                      required: "",
                      spellcheck: "false",
                      type: "password",
                      value: ""
                    }
                  }),
                  _vm._v(" "),
                  _c("input", {
                    staticClass: "icon-confirm",
                    attrs: { type: "submit", value: "" }
                  })
                ]
              )
            : _c("div"),
          _vm._v(" "),
          _c(
            "form",
            {
              staticClass: "mailAddress",
              class: { "icon-loading-small": _vm.loading.mailAddress },
              on: {
                submit: function($event) {
                  $event.preventDefault()
                  return _vm.updateEmail($event)
                }
              }
            },
            [
              _c("input", {
                ref: "mailAddress",
                attrs: {
                  id: "mailAddress" + _vm.user.id + _vm.rand,
                  disabled: _vm.loading.mailAddress || _vm.loading.all,
                  placeholder: _vm.t("settings", "Add new email address"),
                  autocapitalize: "off",
                  autocomplete: "new-password",
                  autocorrect: "off",
                  spellcheck: "false",
                  type: "email"
                },
                domProps: { value: _vm.user.email }
              }),
              _vm._v(" "),
              _c("input", {
                staticClass: "icon-confirm",
                attrs: { type: "submit", value: "" }
              })
            ]
          ),
          _vm._v(" "),
          _c(
            "div",
            {
              staticClass: "groups",
              class: { "icon-loading-small": _vm.loading.groups }
            },
            [
              _c(
                "Multiselect",
                {
                  staticClass: "multiselect-vue",
                  attrs: {
                    "close-on-select": false,
                    disabled: _vm.loading.groups || _vm.loading.all,
                    limit: 2,
                    multiple: true,
                    options: _vm.availableGroups,
                    placeholder: _vm.t("settings", "Add user in group"),
                    "tag-width": 60,
                    taggable: _vm.settings.isAdmin,
                    value: _vm.userGroups,
                    label: "name",
                    "tag-placeholder": "create",
                    "track-by": "id"
                  },
                  on: {
                    remove: _vm.removeUserGroup,
                    select: _vm.addUserGroup,
                    tag: _vm.createGroup
                  }
                },
                [
                  _c(
                    "span",
                    { attrs: { slot: "noResult" }, slot: "noResult" },
                    [_vm._v(_vm._s(_vm.t("settings", "No results")))]
                  )
                ]
              )
            ],
            1
          ),
          _vm._v(" "),
          _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
            ? _c(
                "div",
                {
                  staticClass: "subadmins",
                  class: { "icon-loading-small": _vm.loading.subadmins }
                },
                [
                  _c(
                    "Multiselect",
                    {
                      staticClass: "multiselect-vue",
                      attrs: {
                        "close-on-select": false,
                        disabled: _vm.loading.subadmins || _vm.loading.all,
                        limit: 2,
                        multiple: true,
                        options: _vm.subAdminsGroups,
                        placeholder: _vm.t("settings", "Set user as admin for"),
                        "tag-width": 60,
                        value: _vm.userSubAdminsGroups,
                        label: "name",
                        "track-by": "id"
                      },
                      on: {
                        remove: _vm.removeUserSubAdmin,
                        select: _vm.addUserSubAdmin
                      }
                    },
                    [
                      _c(
                        "span",
                        { attrs: { slot: "noResult" }, slot: "noResult" },
                        [_vm._v(_vm._s(_vm.t("settings", "No results")))]
                      )
                    ]
                  )
                ],
                1
              )
            : _vm._e(),
          _vm._v(" "),
          _c(
            "div",
            {
              directives: [
                {
                  name: "tooltip",
                  rawName: "v-tooltip.auto",
                  value: _vm.usedSpace,
                  expression: "usedSpace",
                  modifiers: { auto: true }
                }
              ],
              staticClass: "quota",
              class: { "icon-loading-small": _vm.loading.quota }
            },
            [
              _c("Multiselect", {
                staticClass: "multiselect-vue",
                attrs: {
                  "allow-empty": false,
                  disabled: _vm.loading.quota || _vm.loading.all,
                  options: _vm.quotaOptions,
                  placeholder: _vm.t("settings", "Select user quota"),
                  taggable: true,
                  value: _vm.userQuota,
                  label: "label",
                  "tag-placeholder": "create",
                  "track-by": "id"
                },
                on: { input: _vm.setUserQuota, tag: _vm.validateQuota }
              })
            ],
            1
          ),
          _vm._v(" "),
          _vm.showConfig.showLanguages
            ? _c(
                "div",
                {
                  staticClass: "languages",
                  class: { "icon-loading-small": _vm.loading.languages }
                },
                [
                  _c("Multiselect", {
                    staticClass: "multiselect-vue",
                    attrs: {
                      "allow-empty": false,
                      disabled: _vm.loading.languages || _vm.loading.all,
                      options: _vm.languages,
                      placeholder: _vm.t("settings", "No language set"),
                      value: _vm.userLanguage,
                      "group-label": "label",
                      "group-values": "languages",
                      label: "name",
                      "track-by": "code"
                    },
                    on: { input: _vm.setUserLanguage }
                  })
                ],
                1
              )
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showStoragePath || _vm.showConfig.showUserBackend
            ? _c("div", { staticClass: "storageLocation" })
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showLastLogin ? _c("div") : _vm._e(),
          _vm._v(" "),
          _c("div", { staticClass: "userActions" }, [
            _vm.OC.currentUser !== _vm.user.id &&
            _vm.user.id !== "admin" &&
            !_vm.loading.all
              ? _c(
                  "div",
                  { staticClass: "toggleUserActions" },
                  [
                    _c(
                      "Actions",
                      [
                        _c(
                          "ActionButton",
                          {
                            attrs: { icon: "icon-checkmark" },
                            on: {
                              click: function($event) {
                                _vm.editing = false
                              }
                            }
                          },
                          [
                            _vm._v(
                              "\n\t\t\t\t\t" +
                                _vm._s(_vm.t("settings", "Done")) +
                                "\n\t\t\t\t"
                            )
                          ]
                        )
                      ],
                      1
                    ),
                    _vm._v(" "),
                    _c("div", {
                      directives: [
                        {
                          name: "click-outside",
                          rawName: "v-click-outside",
                          value: _vm.hideMenu,
                          expression: "hideMenu"
                        }
                      ],
                      staticClass: "icon-more",
                      on: { click: _vm.toggleMenu }
                    }),
                    _vm._v(" "),
                    _c(
                      "div",
                      {
                        staticClass: "popovermenu",
                        class: { open: _vm.openedMenu }
                      },
                      [_c("PopoverMenu", { attrs: { menu: _vm.userActions } })],
                      1
                    )
                  ],
                  1
                )
              : _vm._e(),
            _vm._v(" "),
            _c(
              "div",
              {
                staticClass: "feedback",
                style: { opacity: _vm.feedbackMessage !== "" ? 1 : 0 }
              },
              [
                _c("div", { staticClass: "icon-checkmark" }),
                _vm._v("\n\t\t\t" + _vm._s(_vm.feedbackMessage) + "\n\t\t")
              ]
            )
          ])
        ]
      )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true&":
/*!******************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=template&id=ff154a08&scoped=true& ***!
  \******************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    {
      staticClass: "row",
      class: { disabled: _vm.loading.delete || _vm.loading.disable },
      attrs: { "data-id": _vm.user.id }
    },
    [
      _c(
        "div",
        {
          staticClass: "avatar",
          class: {
            "icon-loading-small":
              _vm.loading.delete || _vm.loading.disable || _vm.loading.wipe
          }
        },
        [
          !_vm.loading.delete && !_vm.loading.disable && !_vm.loading.wipe
            ? _c("img", {
                attrs: {
                  alt: "",
                  width: "32",
                  height: "32",
                  src: _vm.generateAvatar(_vm.user.id, 32),
                  srcset:
                    _vm.generateAvatar(_vm.user.id, 64) +
                    " 2x, " +
                    _vm.generateAvatar(_vm.user.id, 128) +
                    " 4x"
                }
              })
            : _vm._e()
        ]
      ),
      _vm._v(" "),
      _c("div", { staticClass: "name" }, [
        _vm._v("\n\t\t" + _vm._s(_vm.user.id) + "\n\t\t"),
        _c("div", { staticClass: "displayName subtitle" }, [
          _c(
            "div",
            {
              directives: [
                {
                  name: "tooltip",
                  rawName: "v-tooltip",
                  value:
                    _vm.user.displayname.length > 20
                      ? _vm.user.displayname
                      : "",
                  expression:
                    "user.displayname.length > 20 ? user.displayname : ''"
                }
              ],
              staticClass: "cellText"
            },
            [_vm._v("\n\t\t\t\t" + _vm._s(_vm.user.displayname) + "\n\t\t\t")]
          )
        ])
      ]),
      _vm._v(" "),
      _c("div"),
      _vm._v(" "),
      _c("div", { staticClass: "mailAddress" }, [
        _c(
          "div",
          {
            directives: [
              {
                name: "tooltip",
                rawName: "v-tooltip",
                value:
                  _vm.user.email !== null && _vm.user.email.length > 20
                    ? _vm.user.email
                    : "",
                expression:
                  "user.email !== null && user.email.length > 20 ? user.email : ''"
              }
            ],
            staticClass: "cellText"
          },
          [_vm._v("\n\t\t\t" + _vm._s(_vm.user.email) + "\n\t\t")]
        )
      ]),
      _vm._v(" "),
      _c("div", { staticClass: "groups" }, [
        _vm._v("\n\t\t" + _vm._s(_vm.userGroupsLabels) + "\n\t")
      ]),
      _vm._v(" "),
      _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
        ? _c("div", { staticClass: "subAdminsGroups" }, [
            _vm._v("\n\t\t" + _vm._s(_vm.userSubAdminsGroupsLabels) + "\n\t")
          ])
        : _vm._e(),
      _vm._v(" "),
      _c(
        "div",
        {
          directives: [
            {
              name: "tooltip",
              rawName: "v-tooltip.auto",
              value: _vm.usedSpace,
              expression: "usedSpace",
              modifiers: { auto: true }
            }
          ],
          staticClass: "quota"
        },
        [
          _c("progress", {
            staticClass: "quota-user-progress",
            class: { warn: _vm.usedQuota > 80 },
            attrs: { max: "100" },
            domProps: { value: _vm.usedQuota }
          })
        ]
      ),
      _vm._v(" "),
      _vm.showConfig.showLanguages
        ? _c("div", { staticClass: "languages" }, [
            _vm._v("\n\t\t" + _vm._s(_vm.userLanguage.name) + "\n\t")
          ])
        : _vm._e(),
      _vm._v(" "),
      _vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath
        ? _c("div", { staticClass: "userBackend" }, [
            _vm.showConfig.showUserBackend
              ? _c("div", { staticClass: "userBackend" }, [
                  _vm._v("\n\t\t\t" + _vm._s(_vm.user.backend) + "\n\t\t")
                ])
              : _vm._e(),
            _vm._v(" "),
            _vm.showConfig.showStoragePath
              ? _c("div", { staticClass: "storageLocation subtitle" }, [
                  _vm._v(
                    "\n\t\t\t" + _vm._s(_vm.user.storageLocation) + "\n\t\t"
                  )
                ])
              : _vm._e()
          ])
        : _vm._e(),
      _vm._v(" "),
      _vm.showConfig.showLastLogin
        ? _c(
            "div",
            {
              directives: [
                {
                  name: "tooltip",
                  rawName: "v-tooltip.auto",
                  value: _vm.userLastLoginTooltip,
                  expression: "userLastLoginTooltip",
                  modifiers: { auto: true }
                }
              ],
              staticClass: "lastLogin"
            },
            [_vm._v("\n\t\t" + _vm._s(_vm.userLastLogin) + "\n\t")]
          )
        : _vm._e(),
      _vm._v(" "),
      _c("div", { staticClass: "userActions" }, [
        _vm.canEdit && !_vm.loading.all
          ? _c(
              "div",
              { staticClass: "toggleUserActions" },
              [
                _c(
                  "Actions",
                  [
                    _c(
                      "ActionButton",
                      {
                        attrs: { icon: "icon-rename" },
                        on: { click: _vm.toggleEdit }
                      },
                      [
                        _vm._v(
                          "\n\t\t\t\t\t" +
                            _vm._s(_vm.t("settings", "Edit User")) +
                            "\n\t\t\t\t"
                        )
                      ]
                    )
                  ],
                  1
                ),
                _vm._v(" "),
                _c("div", {
                  directives: [
                    {
                      name: "click-outside",
                      rawName: "v-click-outside",
                      value: _vm.hideMenu,
                      expression: "hideMenu"
                    }
                  ],
                  staticClass: "icon-more",
                  on: {
                    click: function($event) {
                      return _vm.$emit("toggleMenu")
                    }
                  }
                }),
                _vm._v(" "),
                _c(
                  "div",
                  {
                    staticClass: "popovermenu",
                    class: { open: _vm.openedMenu }
                  },
                  [_c("PopoverMenu", { attrs: { menu: _vm.userActions } })],
                  1
                )
              ],
              1
            )
          : _vm._e(),
        _vm._v(" "),
        _c(
          "div",
          {
            staticClass: "feedback",
            style: { opacity: _vm.feedbackMessage !== "" ? 1 : 0 }
          },
          [
            _c("div", { staticClass: "icon-checkmark" }),
            _vm._v("\n\t\t\t" + _vm._s(_vm.feedbackMessage) + "\n\t\t")
          ]
        )
      ])
    ]
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562&":
/*!********************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/views/Users.vue?vue&type=template&id=889b7562& ***!
  \********************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function() {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "Content",
    {
      attrs: {
        "app-name": "settings",
        "navigation-class": { "icon-loading": _vm.loadingAddGroup }
      }
    },
    [
      _c(
        "AppNavigation",
        [
          _c("AppNavigationNew", {
            attrs: {
              "button-id": "new-user-button",
              text: _vm.t("settings", "New user"),
              "button-class": "icon-add"
            },
            on: { click: _vm.toggleNewUserMenu }
          }),
          _vm._v(" "),
          _c(
            "ul",
            { attrs: { id: "usergrouplist" } },
            _vm._l(_vm.menu, function(item) {
              return _c("AppNavigationItem", {
                key: item.key,
                attrs: { item: item }
              })
            }),
            1
          ),
          _vm._v(" "),
          _c("AppNavigationSettings", [
            _c(
              "div",
              [
                _c("p", [_vm._v(_vm._s(_vm.t("settings", "Default quota:")))]),
                _vm._v(" "),
                _c("Multiselect", {
                  attrs: {
                    value: _vm.defaultQuota,
                    options: _vm.quotaOptions,
                    "tag-placeholder": "create",
                    placeholder: _vm.t("settings", "Select default quota"),
                    label: "label",
                    "track-by": "id",
                    "allow-empty": false,
                    taggable: true
                  },
                  on: { tag: _vm.validateQuota, input: _vm.setDefaultQuota }
                })
              ],
              1
            ),
            _vm._v(" "),
            _c("div", [
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.showLanguages,
                    expression: "showLanguages"
                  }
                ],
                staticClass: "checkbox",
                attrs: { id: "showLanguages", type: "checkbox" },
                domProps: {
                  checked: Array.isArray(_vm.showLanguages)
                    ? _vm._i(_vm.showLanguages, null) > -1
                    : _vm.showLanguages
                },
                on: {
                  change: function($event) {
                    var $$a = _vm.showLanguages,
                      $$el = $event.target,
                      $$c = $$el.checked ? true : false
                    if (Array.isArray($$a)) {
                      var $$v = null,
                        $$i = _vm._i($$a, $$v)
                      if ($$el.checked) {
                        $$i < 0 && (_vm.showLanguages = $$a.concat([$$v]))
                      } else {
                        $$i > -1 &&
                          (_vm.showLanguages = $$a
                            .slice(0, $$i)
                            .concat($$a.slice($$i + 1)))
                      }
                    } else {
                      _vm.showLanguages = $$c
                    }
                  }
                }
              }),
              _vm._v(" "),
              _c("label", { attrs: { for: "showLanguages" } }, [
                _vm._v(_vm._s(_vm.t("settings", "Show Languages")))
              ])
            ]),
            _vm._v(" "),
            _c("div", [
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.showLastLogin,
                    expression: "showLastLogin"
                  }
                ],
                staticClass: "checkbox",
                attrs: { id: "showLastLogin", type: "checkbox" },
                domProps: {
                  checked: Array.isArray(_vm.showLastLogin)
                    ? _vm._i(_vm.showLastLogin, null) > -1
                    : _vm.showLastLogin
                },
                on: {
                  change: function($event) {
                    var $$a = _vm.showLastLogin,
                      $$el = $event.target,
                      $$c = $$el.checked ? true : false
                    if (Array.isArray($$a)) {
                      var $$v = null,
                        $$i = _vm._i($$a, $$v)
                      if ($$el.checked) {
                        $$i < 0 && (_vm.showLastLogin = $$a.concat([$$v]))
                      } else {
                        $$i > -1 &&
                          (_vm.showLastLogin = $$a
                            .slice(0, $$i)
                            .concat($$a.slice($$i + 1)))
                      }
                    } else {
                      _vm.showLastLogin = $$c
                    }
                  }
                }
              }),
              _vm._v(" "),
              _c("label", { attrs: { for: "showLastLogin" } }, [
                _vm._v(_vm._s(_vm.t("settings", "Show last login")))
              ])
            ]),
            _vm._v(" "),
            _c("div", [
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.showUserBackend,
                    expression: "showUserBackend"
                  }
                ],
                staticClass: "checkbox",
                attrs: { id: "showUserBackend", type: "checkbox" },
                domProps: {
                  checked: Array.isArray(_vm.showUserBackend)
                    ? _vm._i(_vm.showUserBackend, null) > -1
                    : _vm.showUserBackend
                },
                on: {
                  change: function($event) {
                    var $$a = _vm.showUserBackend,
                      $$el = $event.target,
                      $$c = $$el.checked ? true : false
                    if (Array.isArray($$a)) {
                      var $$v = null,
                        $$i = _vm._i($$a, $$v)
                      if ($$el.checked) {
                        $$i < 0 && (_vm.showUserBackend = $$a.concat([$$v]))
                      } else {
                        $$i > -1 &&
                          (_vm.showUserBackend = $$a
                            .slice(0, $$i)
                            .concat($$a.slice($$i + 1)))
                      }
                    } else {
                      _vm.showUserBackend = $$c
                    }
                  }
                }
              }),
              _vm._v(" "),
              _c("label", { attrs: { for: "showUserBackend" } }, [
                _vm._v(_vm._s(_vm.t("settings", "Show user backend")))
              ])
            ]),
            _vm._v(" "),
            _c("div", [
              _c("input", {
                directives: [
                  {
                    name: "model",
                    rawName: "v-model",
                    value: _vm.showStoragePath,
                    expression: "showStoragePath"
                  }
                ],
                staticClass: "checkbox",
                attrs: { id: "showStoragePath", type: "checkbox" },
                domProps: {
                  checked: Array.isArray(_vm.showStoragePath)
                    ? _vm._i(_vm.showStoragePath, null) > -1
                    : _vm.showStoragePath
                },
                on: {
                  change: function($event) {
                    var $$a = _vm.showStoragePath,
                      $$el = $event.target,
                      $$c = $$el.checked ? true : false
                    if (Array.isArray($$a)) {
                      var $$v = null,
                        $$i = _vm._i($$a, $$v)
                      if ($$el.checked) {
                        $$i < 0 && (_vm.showStoragePath = $$a.concat([$$v]))
                      } else {
                        $$i > -1 &&
                          (_vm.showStoragePath = $$a
                            .slice(0, $$i)
                            .concat($$a.slice($$i + 1)))
                      }
                    } else {
                      _vm.showStoragePath = $$c
                    }
                  }
                }
              }),
              _vm._v(" "),
              _c("label", { attrs: { for: "showStoragePath" } }, [
                _vm._v(_vm._s(_vm.t("settings", "Show storage path")))
              ])
            ])
          ])
        ],
        1
      ),
      _vm._v(" "),
      _c(
        "AppContent",
        [
          _c("UserList", {
            attrs: {
              users: _vm.users,
              "show-config": _vm.showConfig,
              "selected-group": _vm.selectedGroup,
              "external-actions": _vm.externalActions
            },
            scopedSlots: _vm._u([
              {
                key: "content",
                fn: function() {
                  return undefined
                },
                proxy: true
              }
            ])
          })
        ],
        1
      )
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRow.vue?vue&type=style&index=0&id=77960baa&scoped=true&lang=scss&");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/vue-style-loader/lib/addStylesClient.js").default
var update = add("beab2b2c", content, false, {});
// Hot Module Replacement
if(false) {}

/***/ }),

/***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css&":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css& ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./apps/settings/src/components/UserList/UserRowSimple.vue?vue&type=style&index=0&id=ff154a08&scoped=true&lang=css&");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/vue-style-loader/lib/addStylesClient.js").default
var update = add("70cdb6d6", content, false, {});
// Hot Module Replacement
if(false) {}

/***/ })

}]);
//# sourceMappingURL=vue-3.js.map?v=e015ba955ee2bc1cd2ca