(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu.vue?vue&type=script&lang=js&":
/*!***************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/popoverMenu.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 _popoverMenu_popoverItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popoverMenu/popoverItem */ "./src/components/popoverMenu/popoverItem.vue");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'popoverMenu',
  props: ['menu'],
  components: {
    popoverItem: _popoverMenu_popoverItem__WEBPACK_IMPORTED_MODULE_0__["default"]
  }
});

/***/ }),

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

"use strict";
__webpack_require__.r(__webpack_exports__);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
  props: ['item']
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/userList.vue?vue&type=script&lang=js&":
/*!************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./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 */ "./src/components/userList/userRow.vue");
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-multiselect */ "./node_modules/vue-multiselect/dist/vue-multiselect.min.js");
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue_multiselect__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");
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'userList',
  props: ['users', 'showConfig', 'selectedGroup', 'externalActions'],
  components: {
    userRow: _userList_userRow__WEBPACK_IMPORTED_MODULE_0__["default"],
    Multiselect: vue_multiselect__WEBPACK_IMPORTED_MODULE_1___default.a,
    InfiniteLoading: vue_infinite_loading__WEBPACK_IMPORTED_MODULE_2___default.a
  },
  data: function data() {
    var unlimitedQuota = {
      id: 'none',
      label: t('settings', 'Unlimited')
    },
        defaultQuota = {
      id: 'default',
      label: t('settings', 'Default quota')
    };
    return {
      unlimitedQuota: unlimitedQuota,
      defaultQuota: defaultQuota,
      loading: {
        all: false,
        groups: false
      },
      scrolled: false,
      searchQuery: '',
      newUser: {
        id: '',
        displayName: '',
        password: '',
        mailAddress: '',
        groups: [],
        subAdminsGroups: [],
        quota: defaultQuota,
        language: {
          code: 'en',
          name: t('settings', 'Default language')
        }
      }
    };
  },
  mounted: function mounted() {
    if (!this.settings.canChangePassword) {
      OC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));
    }
    /** 
     * 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
     */


    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.$route.params.selectedGroup);
    /** 
     * Register search
     */

    this.userSearch = new OCA.Search(this.search, this.resetSearch);
  },
  computed: {
    settings: function settings() {
      return this.$store.getters.getServerData;
    },
    filteredUsers: function filteredUsers() {
      if (this.selectedGroup === 'disabled') {
        var disabledUsers = this.users.filter(function (user) {
          return user.enabled === false;
        });

        if (disabledUsers.length === 0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) {
          // disabled group is empty, redirection to all users
          this.$router.push({
            name: 'users'
          });
          this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
        }

        return disabledUsers;
      }

      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_current_user;
        });
      }

      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;
    },

    /* LANGUAGES */
    languages: function languages() {
      return Array({
        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) {
      this.$store.commit('resetUsers');
      this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
      this.setNewUserDefaultGroup(val);
    }
  },
  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));
        return this.newUser.quota = {
          id: quota,
          label: quota
        };
      } // Default is unlimited


      return this.newUser.quota = 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.$emit('$InfiniteLoading:reset');
    },
    resetSearch: function resetSearch() {
      this.search('');
    },
    resetForm: function resetForm() {
      // revert form to original state
      Object.assign(this.newUser, this.$options.data.call(this).newUser);
      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 () {
        return _this.resetForm();
      }).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} groups 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];
    }
  }
});

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/userList/userRow.vue?vue&type=script&lang=js&":
/*!********************************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./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 _popoverMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../popoverMenu */ "./src/components/popoverMenu.vue");
/* 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 vue_multiselect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-multiselect */ "./node_modules/vue-multiselect/dist/vue-multiselect.min.js");
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(vue_multiselect__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! v-tooltip */ "./node_modules/v-tooltip/dist/v-tooltip.esm.js");
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_3__["default"].use(v_tooltip__WEBPACK_IMPORTED_MODULE_4__["default"]);
/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'userRow',
  props: ['user', 'settings', 'groups', 'subAdminsGroups', 'quotaOptions', 'showConfig', 'languages', 'externalActions'],
  components: {
    popoverMenu: _popoverMenu__WEBPACK_IMPORTED_MODULE_0__["default"],
    Multiselect: vue_multiselect__WEBPACK_IMPORTED_MODULE_2___default.a
  },
  directives: {
    ClickOutside: vue_click_outside__WEBPACK_IMPORTED_MODULE_1___default.a
  },
  mounted: function mounted() {// required if popup needs to stay opened after menu click
    // since we only have disable/delete actions, let's close it directly
    // this.popupItem = this.$el;
  },
  data: function data() {
    return {
      rand: parseInt(Math.random() * 1000),
      openedMenu: false,
      feedbackMessage: '',
      loading: {
        all: false,
        displayName: false,
        password: false,
        mailAddress: false,
        groups: false,
        subadmins: false,
        quota: false,
        delete: false,
        disable: false,
        languages: false
      }
    };
  },
  computed: {
    /* USER POPOVERMENU ACTIONS */
    userActions: function userActions() {
      var actions = [
        {
        icon:  'icon-add',
        text:   t('settings', 'Delete user'),
        action: this.removeUserStorage
      },{
        icon: 'icon-delete',
        text: t('settings', 'Delete user'),
        action: this.deleteUser
      }, {
        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 [];
      return actions.concat(this.externalActions);
    },

    /* 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 ? 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;
    }
  },
  methods: {
    /* MENU HANDLING */
    toggleMenu: function toggleMenu() {
      this.openedMenu = !this.openedMenu;
    },
    hideMenu: function hideMenu() {
      this.openedMenu = false;
    },

    /**
     * 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
      });
    },

    /**
     * Format array of groups objects to a string for the popup
     * 
     * @param {array} groups The groups
     * @returns {string}
     */
    formatGroupsTitle: function formatGroupsTitle(groups) {
      var names = groups.map(function (group) {
        return group.name;
      });
      return names.slice(2).join(', ');
    },
    deleteUser: function deleteUser() {
      var _this5 = this;

      this.loading.delete = true;
      this.loading.all = true;
      var userid = this.user.id;
      return this.$store.dispatch('deleteUser', userid).then(function () {
        _this5.loading.delete = false;
        _this5.loading.all = false;
      });
    },
    enableDisableUser: function enableDisableUser() {
      var _this6 = 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 () {
        _this6.loading.delete = false;
        _this6.loading.all = false;
      });
    },

    /**
     * Set user displayName
     * 
     * @param {string} displayName The display name
     * @returns {Promise}
     */
    updateDisplayName: function updateDisplayName() {
      var _this7 = 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 () {
        _this7.loading.displayName = false;
        _this7.$refs.displayName.value = displayName;
      });
    },

    /**
     * Set user password
     * 
     * @param {string} password The email adress
     * @returns {Promise}
     */
    updatePassword: function updatePassword() {
      var _this8 = 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 () {
        _this8.loading.password = false;
        _this8.$refs.password.value = ''; // empty & show placeholder 
      });
    },

    /**
     * Set user mailAddress
     * 
     * @param {string} mailAddress The email adress
     * @returns {Promise}
     */
    updateEmail: function updateEmail() {
      var _this9 = 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 () {
        _this9.loading.mailAddress = false;
        _this9.$refs.mailAddress.value = mailAddress;
      });
    },

    /**
     * Create a new group and add user to it
     * 
     * @param {string} groups Group id
     * @returns {Promise}
     */
    createGroup: function createGroup(gid) {
      var _this10 = this;

      this.loading = {
        groups: true,
        subadmins: true
      };
      this.$store.dispatch('addGroup', gid).then(function () {
        _this10.loading = {
          groups: false,
          subadmins: false
        };
        var userid = _this10.user.id;

        _this10.$store.dispatch('addUserGroup', {
          userid: userid,
          gid: gid
        });
      }).catch(function () {
        _this10.loading = {
          groups: false,
          subadmins: false
        };
      });
      return this.$store.getters.getGroups[this.groups.length];
    },

    /**
     * Add user to group
     * 
     * @param {object} group Group object
     * @returns {Promise}
     */
    addUserGroup: function addUserGroup(group) {
      var _this11 = this;

      if (group.canAdd === false) {
        return false;
      }

      this.loading.groups = true;
      var userid = this.user.id;
      var gid = group.id;
      return this.$store.dispatch('addUserGroup', {
        userid: userid,
        gid: gid
      }).then(function () {
        return _this11.loading.groups = false;
      });
    },

    /**
     * Remove user from group
     * 
     * @param {object} group Group object
     * @returns {Promise}
     */
    removeUserGroup: function removeUserGroup(group) {
      var _this12 = this;

      if (group.canRemove === false) {
        return false;
      }

      this.loading.groups = true;
      var userid = this.user.id;
      var gid = group.id;
      return this.$store.dispatch('removeUserGroup', {
        userid: userid,
        gid: gid
      }).then(function () {
        _this12.loading.groups = false; // remove user from current list if current list is the removed group

        if (_this12.$route.params.selectedGroup === gid) {
          _this12.$store.commit('deleteUser', userid);
        }
      }).catch(function () {
        _this12.loading.groups = false;
      });
    },

    /**
     * Add user to group
     * 
     * @param {object} group Group object
     * @returns {Promise}
     */
    addUserSubAdmin: function addUserSubAdmin(group) {
      var _this13 = this;

      this.loading.subadmins = true;
      var userid = this.user.id;
      var gid = group.id;
      return this.$store.dispatch('addUserSubAdmin', {
        userid: userid,
        gid: gid
      }).then(function () {
        return _this13.loading.subadmins = false;
      });
    },

    /**
     * Remove user from group
     * 
     * @param {object} group Group object
     * @returns {Promise}
     */
    removeUserSubAdmin: function removeUserSubAdmin(group) {
      var _this14 = this;

      this.loading.subadmins = true;
      var userid = this.user.id;
      var gid = group.id;
      return this.$store.dispatch('removeUserSubAdmin', {
        userid: userid,
        gid: gid
      }).then(function () {
        return _this14.loading.subadmins = false;
      });
    },

    /**
     * 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 setUserQuota() {
      var _this15 = this;

      var quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none';
      this.loading.quota = true; // ensure we only send the preset id

      quota = quota.id ? quota.id : quota;
      this.$store.dispatch('setUserData', {
        userid: this.user.id,
        key: 'quota',
        value: quota
      }).then(function () {
        return _this15.loading.quota = false;
      });
      return 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 && 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 setUserLanguage(lang) {
      var _this16 = this;

      this.loading.languages = true; // ensure we only send the preset id

      this.$store.dispatch('setUserData', {
        userid: this.user.id,
        key: 'language',
        value: lang.code
      }).then(function () {
        return _this16.loading.languages = false;
      });
      return lang;
    },

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

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

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

/***/ }),

/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/views/Users.vue?vue&type=script&lang=js&":
/*!****************************************************************************************************************************************!*\
  !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./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 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 _components_userList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/userList */ "./src/components/userList.vue");
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js");
/* harmony import */ var vue_localstorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-localstorage */ "./node_modules/vue-localstorage/dist/vue-local-storage.js");
/* harmony import */ var vue_localstorage__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue_localstorage__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-multiselect */ "./node_modules/vue-multiselect/dist/vue-multiselect.min.js");
/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(vue_multiselect__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _store_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../store/api */ "./src/store/api.js");
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_2__["default"].use(vue_localstorage__WEBPACK_IMPORTED_MODULE_3___default.a);
/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'Users',
  props: ['selectedGroup'],
  components: {
    AppNavigation: nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__["AppNavigation"],
    userList: _components_userList__WEBPACK_IMPORTED_MODULE_1__["default"],
    Multiselect: vue_multiselect__WEBPACK_IMPORTED_MODULE_4___default.a
  },
  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
        }
      }
    });
  },
  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
      }
    };
  },
  methods: {
    toggleNewUserMenu: function toggleNewUserMenu() {
      this.showConfig.showNewUserForm = !this.showConfig.showNewUserForm;

      if (this.showConfig.showNewUserForm) {
        vue__WEBPACK_IMPORTED_MODULE_2__["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'}
     * @returns {string}
     */
    setDefaultQuota: function setDefaultQuota() {
      var _this = 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
          };
        }

        _this.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 === 0) {
        return this.setDefaultQuota('none');
      } else if (validQuota !== null) {
        // unify format output
        return this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));
      } // if no valid do not change


      return false;
    },

    /**
     * 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
     */
    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 _this2 = this;

      var gid = event.target[0].value;
      this.loadingAddGroup = true;
      this.$store.dispatch('addGroup', gid).then(function () {
        _this2.showAddGroupEntry = false;
        _this2.loadingAddGroup = false;
      }).catch(function () {
        _this2.loadingAddGroup = false;
      });
    }
  },
  computed: {
    users: function users() {
      return this.$store.getters.getUsers;
    },
    loading: function loading() {
      return Object.keys(this.users).length === 0;
    },
    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 (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 _this3 = 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; // 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' && _this3.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);
          }
      } // 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_2__["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_2__["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_2__["default"].set(addGroup, 'action', function () {
          self.showAddGroupEntry = true;
        });
      }

      groups.unshift(addGroup); // Return

      return {
        id: 'usergrouplist',
        new: {
          id: 'new-user-button',
          text: t('settings', 'New user'),
          icon: 'icon-add',
          action: this.toggleNewUserMenu
        },
        items: groups
      };
    }
  }
});

/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu.vue?vue&type=template&id=04ea21c4&":
/*!*****************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/popoverMenu.vue?vue&type=template&id=04ea21c4& ***!
  \*****************************************************************************************************************************************************************************************************/
/*! 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(
    "ul",
    _vm._l(_vm.menu, function(item, key) {
      return _c("popover-item", { key: key, attrs: { item: item } })
    })
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu/popoverItem.vue?vue&type=template&id=4c6af9e6&":
/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/popoverMenu/popoverItem.vue?vue&type=template&id=4c6af9e6& ***!
  \*****************************************************************************************************************************************************************************************************************/
/*! 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("li", [
    _vm.item.href
      ? _c(
          "a",
          {
            attrs: {
              href: _vm.item.href ? _vm.item.href : "#",
              target: _vm.item.target ? _vm.item.target : "",
              rel: "noreferrer noopener"
            },
            on: { click: _vm.item.action }
          },
          [
            _c("span", { class: _vm.item.icon }),
            _vm._v(" "),
            _vm.item.text
              ? _c("span", [_vm._v(_vm._s(_vm.item.text))])
              : _vm.item.longtext
                ? _c("p", [_vm._v(_vm._s(_vm.item.longtext))])
                : _vm._e()
          ]
        )
      : _vm.item.action
        ? _c("button", { on: { click: _vm.item.action } }, [
            _c("span", { class: _vm.item.icon }),
            _vm._v(" "),
            _vm.item.text
              ? _c("span", [_vm._v(_vm._s(_vm.item.text))])
              : _vm.item.longtext
                ? _c("p", [_vm._v(_vm._s(_vm.item.longtext))])
                : _vm._e()
          ])
        : _c("span", { staticClass: "menuitem" }, [
            _c("span", { class: _vm.item.icon }),
            _vm._v(" "),
            _vm.item.text
              ? _c("span", [_vm._v(_vm._s(_vm.item.text))])
              : _vm.item.longtext
                ? _c("p", [_vm._v(_vm._s(_vm.item.longtext))])
                : _vm._e()
          ])
  ])
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/userList.vue?vue&type=template&id=40745299&":
/*!**************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/userList.vue?vue&type=template&id=40745299& ***!
  \**************************************************************************************************************************************************************************************************/
/*! 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(
        "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(_vm._s(_vm.t("settings", "Username")))
          ]),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "displayName", attrs: { id: "headerDisplayName" } },
            [_vm._v(_vm._s(_vm.t("settings", "Display name")))]
          ),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "password", attrs: { id: "headerPassword" } },
            [_vm._v(_vm._s(_vm.t("settings", "Password")))]
          ),
          _vm._v(" "),
          _c(
            "div",
            { staticClass: "mailAddress", attrs: { id: "headerAddress" } },
            [_vm._v(_vm._s(_vm.t("settings", "Email")))]
          ),
          _vm._v(" "),
          _c("div", { staticClass: "groups", attrs: { id: "headerGroups" } }, [
            _vm._v(_vm._s(_vm.t("settings", "Groups")))
          ]),
          _vm._v(" "),
          _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin
            ? _c(
                "div",
                { staticClass: "subadmins", attrs: { id: "headerSubAdmins" } },
                [_vm._v(_vm._s(_vm.t("settings", "Group admin for")))]
              )
            : _vm._e(),
          _vm._v(" "),
          _c("div", { staticClass: "quota", attrs: { id: "headerQuota" } }, [
            _vm._v(_vm._s(_vm.t("settings", "Quota")))
          ]),
          _vm._v(" "),
          _vm.showConfig.showLanguages
            ? _c(
                "div",
                { staticClass: "languages", attrs: { id: "headerLanguages" } },
                [_vm._v(_vm._s(_vm.t("settings", "Language")))]
              )
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showStoragePath
            ? _c(
                "div",
                { staticClass: "headerStorageLocation storageLocation" },
                [_vm._v(_vm._s(_vm.t("settings", "Storage location")))]
              )
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showUserBackend
            ? _c("div", { staticClass: "headerUserBackend userBackend" }, [
                _vm._v(_vm._s(_vm.t("settings", "User backend")))
              ])
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showLastLogin
            ? _c("div", { staticClass: "headerLastLogin lastLogin" }, [
                _vm._v(_vm._s(_vm.t("settings", "Last login")))
              ])
            : _vm._e(),
          _vm._v(" "),
          _c("div", { staticClass: "userActions" })
        ]
      ),
      _vm._v(" "),
      _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",
                type: "text",
                required: "",
                placeholder: _vm.t("settings", "Username"),
                name: "username",
                autocomplete: "off",
                autocapitalize: "none",
                autocorrect: "off",
                pattern: "[a-zA-Z0-9 _\\.@\\-']+"
              },
              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",
                type: "text",
                placeholder: _vm.t("settings", "Display name"),
                name: "displayname",
                autocomplete: "off",
                autocapitalize: "none",
                autocorrect: "off"
              },
              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",
                type: "password",
                required: _vm.newUser.mailAddress === "",
                placeholder: _vm.t("settings", "Password"),
                name: "password",
                autocomplete: "new-password",
                autocapitalize: "none",
                autocorrect: "off",
                minlength: _vm.minPasswordLength
              },
              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",
                type: "email",
                required: _vm.newUser.password === "",
                placeholder: _vm.t("settings", "Email"),
                name: "email",
                autocomplete: "off",
                autocapitalize: "none",
                autocorrect: "off"
              },
              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: {
                      type: "text",
                      tabindex: "-1",
                      id: "newgroups",
                      required: !_vm.settings.isAdmin
                    },
                    domProps: { value: _vm.newUser.groups }
                  })
                : _vm._e(),
              _vm._v(" "),
              _c(
                "multiselect",
                {
                  staticClass: "multiselect-vue",
                  attrs: {
                    options: _vm.canAddGroups,
                    disabled: _vm.loading.groups || _vm.loading.all,
                    "tag-placeholder": "create",
                    placeholder: _vm.t("settings", "Add user in group"),
                    label: "name",
                    "track-by": "id",
                    multiple: true,
                    taggable: true,
                    "close-on-select": false
                  },
                  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: {
                        options: _vm.subAdminsGroups,
                        placeholder: _vm.t("settings", "Set user as admin for"),
                        label: "name",
                        "track-by": "id",
                        multiple: true,
                        "close-on-select": false
                      },
                      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: {
                  options: _vm.quotaOptions,
                  placeholder: _vm.t("settings", "Select user quota"),
                  label: "label",
                  "track-by": "id",
                  allowEmpty: false,
                  taggable: true
                },
                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: {
                      options: _vm.languages,
                      placeholder: _vm.t("settings", "Default language"),
                      label: "name",
                      "track-by": "code",
                      allowEmpty: false,
                      "group-values": "languages",
                      "group-label": "label"
                    },
                    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: {
                type: "submit",
                id: "newsubmit",
                value: "",
                title: _vm.t("settings", "Add a new user")
              }
            })
          ])
        ]
      ),
      _vm._v(" "),
      _vm._l(_vm.filteredUsers, function(user, key) {
        return _c("user-row", {
          key: key,
          attrs: {
            user: user,
            settings: _vm.settings,
            showConfig: _vm.showConfig,
            groups: _vm.groups,
            subAdminsGroups: _vm.subAdminsGroups,
            quotaOptions: _vm.quotaOptions,
            languages: _vm.languages,
            externalActions: _vm.externalActions
          }
        })
      }),
      _vm._v(" "),
      _c(
        "infinite-loading",
        { 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?!./src/components/userList/userRow.vue?vue&type=template&id=d19586ce&":
/*!**********************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/userList/userRow.vue?vue&type=template&id=d19586ce& ***!
  \**********************************************************************************************************************************************************************************************************/
/*! 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.delete && !_vm.loading.disable
              ? _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(_vm._s(_vm.user.id))]),
        _vm._v(" "),
        _c("div", { staticClass: "obfuscated" }, [
          _vm._v(
            _vm._s(
              _vm.t(
                "settings",
                "You do not have permissions to see the details of this user"
              )
            )
          )
        ])
      ])
    : _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.delete && !_vm.loading.disable
                ? _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(_vm._s(_vm.user.id))]),
          _vm._v(" "),
          _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,
                            type: "text",
                            disabled:
                              _vm.loading.displayName || _vm.loading.all,
                            autocomplete: "new-password",
                            autocorrect: "off",
                            autocapitalize: "off",
                            spellcheck: "false"
                          },
                          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"
                    },
                    [_vm._v(_vm._s(_vm.user.displayname))]
                  )
            ],
            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,
                      type: "password",
                      required: "",
                      disabled: _vm.loading.password || _vm.loading.all,
                      minlength: _vm.minPasswordLength,
                      value: "",
                      placeholder: _vm.t("settings", "New password"),
                      autocomplete: "new-password",
                      autocorrect: "off",
                      autocapitalize: "off",
                      spellcheck: "false"
                    }
                  }),
                  _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,
                  type: "email",
                  disabled: _vm.loading.mailAddress || _vm.loading.all,
                  autocomplete: "new-password",
                  autocorrect: "off",
                  autocapitalize: "off",
                  spellcheck: "false"
                },
                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: {
                    value: _vm.userGroups,
                    options: _vm.availableGroups,
                    disabled: _vm.loading.groups || _vm.loading.all,
                    "tag-placeholder": "create",
                    placeholder: _vm.t("settings", "Add user in group"),
                    label: "name",
                    "track-by": "id",
                    limit: 2,
                    multiple: true,
                    taggable: _vm.settings.isAdmin,
                    closeOnSelect: false
                  },
                  on: {
                    tag: _vm.createGroup,
                    select: _vm.addUserGroup,
                    remove: _vm.removeUserGroup
                  }
                },
                [
                  _c(
                    "span",
                    {
                      directives: [
                        {
                          name: "tooltip",
                          rawName: "v-tooltip.auto",
                          value: _vm.formatGroupsTitle(_vm.userGroups),
                          expression: "formatGroupsTitle(userGroups)",
                          modifiers: { auto: true }
                        }
                      ],
                      staticClass: "multiselect__limit",
                      attrs: { slot: "limit" },
                      slot: "limit"
                    },
                    [_vm._v("+" + _vm._s(_vm.userGroups.length - 2))]
                  ),
                  _vm._v(" "),
                  _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: {
                        value: _vm.userSubAdminsGroups,
                        options: _vm.subAdminsGroups,
                        disabled: _vm.loading.subadmins || _vm.loading.all,
                        placeholder: _vm.t("settings", "Set user as admin for"),
                        label: "name",
                        "track-by": "id",
                        limit: 2,
                        multiple: true,
                        closeOnSelect: false
                      },
                      on: {
                        select: _vm.addUserSubAdmin,
                        remove: _vm.removeUserSubAdmin
                      }
                    },
                    [
                      _c(
                        "span",
                        {
                          directives: [
                            {
                              name: "tooltip",
                              rawName: "v-tooltip.auto",
                              value: _vm.formatGroupsTitle(
                                _vm.userSubAdminsGroups
                              ),
                              expression:
                                "formatGroupsTitle(userSubAdminsGroups)",
                              modifiers: { auto: true }
                            }
                          ],
                          staticClass: "multiselect__limit",
                          attrs: { slot: "limit" },
                          slot: "limit"
                        },
                        [
                          _vm._v(
                            "+" + _vm._s(_vm.userSubAdminsGroups.length - 2)
                          )
                        ]
                      ),
                      _vm._v(" "),
                      _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: {
                  value: _vm.userQuota,
                  options: _vm.quotaOptions,
                  disabled: _vm.loading.quota || _vm.loading.all,
                  "tag-placeholder": "create",
                  placeholder: _vm.t("settings", "Select user quota"),
                  label: "label",
                  "track-by": "id",
                  allowEmpty: false,
                  taggable: true
                },
                on: { tag: _vm.validateQuota, input: _vm.setUserQuota }
              }),
              _vm._v(" "),
              _c("progress", {
                staticClass: "quota-user-progress",
                class: { warn: _vm.usedQuota > 80 },
                attrs: { max: "100" },
                domProps: { value: _vm.usedQuota }
              })
            ],
            1
          ),
          _vm._v(" "),
          _vm.showConfig.showLanguages
            ? _c(
                "div",
                {
                  staticClass: "languages",
                  class: { "icon-loading-small": _vm.loading.languages }
                },
                [
                  _c("multiselect", {
                    staticClass: "multiselect-vue",
                    attrs: {
                      value: _vm.userLanguage,
                      options: _vm.languages,
                      disabled: _vm.loading.languages || _vm.loading.all,
                      placeholder: _vm.t("settings", "No language set"),
                      label: "name",
                      "track-by": "code",
                      allowEmpty: false,
                      "group-values": "languages",
                      "group-label": "label"
                    },
                    on: { input: _vm.setUserLanguage }
                  })
                ],
                1
              )
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showStoragePath
            ? _c("div", { staticClass: "storageLocation" }, [
                _vm._v(_vm._s(_vm.user.storageLocation))
              ])
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showUserBackend
            ? _c("div", { staticClass: "userBackend" }, [
                _vm._v(_vm._s(_vm.user.backend))
              ])
            : _vm._e(),
          _vm._v(" "),
          _vm.showConfig.showLastLogin
            ? _c(
                "div",
                {
                  directives: [
                    {
                      name: "tooltip",
                      rawName: "v-tooltip.auto",
                      value:
                        _vm.user.lastLogin > 0
                          ? _vm.OC.Util.formatDate(_vm.user.lastLogin)
                          : "",
                      expression:
                        "user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''",
                      modifiers: { auto: true }
                    }
                  ],
                  staticClass: "lastLogin"
                },
                [
                  _vm._v(
                    "\n\t\t" +
                      _vm._s(
                        _vm.user.lastLogin > 0
                          ? _vm.OC.Util.relativeModifiedDate(_vm.user.lastLogin)
                          : _vm.t("settings", "Never")
                      ) +
                      "\n\t"
                  )
                ]
              )
            : _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("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("popover-menu", { attrs: { menu: _vm.userActions } })],
                    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?!./src/views/Users.vue?vue&type=template&id=68be103e&":
/*!******************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/views/Users.vue?vue&type=template&id=68be103e& ***!
  \******************************************************************************************************************************************************************************************/
/*! 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: "app-settings", attrs: { id: "content" } },
    [
      _c(
        "app-navigation",
        { attrs: { menu: _vm.menu } },
        [
          _c("template", { slot: "settings-content" }, [
            _c(
              "div",
              [
                _c("p", [_vm._v(_vm._s(_vm.t("settings", "Default quota:")))]),
                _vm._v(" "),
                _c("multiselect", {
                  staticClass: "multiselect-vue",
                  attrs: {
                    value: _vm.defaultQuota,
                    options: _vm.quotaOptions,
                    "tag-placeholder": "create",
                    placeholder: _vm.t("settings", "Select default quota"),
                    label: "label",
                    "track-by": "id",
                    allowEmpty: 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: { type: "checkbox", id: "showLanguages" },
                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: { type: "checkbox", id: "showLastLogin" },
                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: { type: "checkbox", id: "showUserBackend" },
                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: { type: "checkbox", id: "showStoragePath" },
                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")))
              ])
            ])
          ])
        ],
        2
      ),
      _vm._v(" "),
      _c("user-list", {
        attrs: {
          users: _vm.users,
          showConfig: _vm.showConfig,
          selectedGroup: _vm.selectedGroup,
          externalActions: _vm.externalActions
        }
      })
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true



/***/ }),

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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _popoverMenu_vue_vue_type_template_id_04ea21c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popoverMenu.vue?vue&type=template&id=04ea21c4& */ "./src/components/popoverMenu.vue?vue&type=template&id=04ea21c4&");
/* harmony import */ var _popoverMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popoverMenu.vue?vue&type=script&lang=js& */ "./src/components/popoverMenu.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"])(
  _popoverMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _popoverMenu_vue_vue_type_template_id_04ea21c4___WEBPACK_IMPORTED_MODULE_0__["render"],
  _popoverMenu_vue_vue_type_template_id_04ea21c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

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

/***/ }),

/***/ "./src/components/popoverMenu.vue?vue&type=script&lang=js&":
/*!*****************************************************************!*\
  !*** ./src/components/popoverMenu.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_popoverMenu_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!./popoverMenu.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu.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_popoverMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./src/components/popoverMenu.vue?vue&type=template&id=04ea21c4&":
/*!***********************************************************************!*\
  !*** ./src/components/popoverMenu.vue?vue&type=template&id=04ea21c4& ***!
  \***********************************************************************/
/*! 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_popoverMenu_vue_vue_type_template_id_04ea21c4___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!./popoverMenu.vue?vue&type=template&id=04ea21c4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu.vue?vue&type=template&id=04ea21c4&");
/* 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_popoverMenu_vue_vue_type_template_id_04ea21c4___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_popoverMenu_vue_vue_type_template_id_04ea21c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _popoverItem_vue_vue_type_template_id_4c6af9e6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popoverItem.vue?vue&type=template&id=4c6af9e6& */ "./src/components/popoverMenu/popoverItem.vue?vue&type=template&id=4c6af9e6&");
/* harmony import */ var _popoverItem_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popoverItem.vue?vue&type=script&lang=js& */ "./src/components/popoverMenu/popoverItem.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"])(
  _popoverItem_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _popoverItem_vue_vue_type_template_id_4c6af9e6___WEBPACK_IMPORTED_MODULE_0__["render"],
  _popoverItem_vue_vue_type_template_id_4c6af9e6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

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

/***/ }),

/***/ "./src/components/popoverMenu/popoverItem.vue?vue&type=script&lang=js&":
/*!*****************************************************************************!*\
  !*** ./src/components/popoverMenu/popoverItem.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_popoverItem_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!./popoverItem.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu/popoverItem.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_popoverItem_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 

/***/ }),

/***/ "./src/components/popoverMenu/popoverItem.vue?vue&type=template&id=4c6af9e6&":
/*!***********************************************************************************!*\
  !*** ./src/components/popoverMenu/popoverItem.vue?vue&type=template&id=4c6af9e6& ***!
  \***********************************************************************************/
/*! 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_popoverItem_vue_vue_type_template_id_4c6af9e6___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!./popoverItem.vue?vue&type=template&id=4c6af9e6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/popoverMenu/popoverItem.vue?vue&type=template&id=4c6af9e6&");
/* 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_popoverItem_vue_vue_type_template_id_4c6af9e6___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_popoverItem_vue_vue_type_template_id_4c6af9e6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./src/components/userList.vue":
/*!*************************************!*\
  !*** ./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_40745299___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./userList.vue?vue&type=template&id=40745299& */ "./src/components/userList.vue?vue&type=template&id=40745299&");
/* harmony import */ var _userList_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./userList.vue?vue&type=script&lang=js& */ "./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_40745299___WEBPACK_IMPORTED_MODULE_0__["render"],
  _userList_vue_vue_type_template_id_40745299___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

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

/***/ }),

/***/ "./src/components/userList.vue?vue&type=script&lang=js&":
/*!**************************************************************!*\
  !*** ./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?!./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"]); 

/***/ }),

/***/ "./src/components/userList.vue?vue&type=template&id=40745299&":
/*!********************************************************************!*\
  !*** ./src/components/userList.vue?vue&type=template&id=40745299& ***!
  \********************************************************************/
/*! 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_40745299___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=40745299& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/userList.vue?vue&type=template&id=40745299&");
/* 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_40745299___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_40745299___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./src/components/userList/userRow.vue":
/*!*********************************************!*\
  !*** ./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_d19586ce___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./userRow.vue?vue&type=template&id=d19586ce& */ "./src/components/userList/userRow.vue?vue&type=template&id=d19586ce&");
/* harmony import */ var _userRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./userRow.vue?vue&type=script&lang=js& */ "./src/components/userList/userRow.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"])(
  _userRow_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _userRow_vue_vue_type_template_id_d19586ce___WEBPACK_IMPORTED_MODULE_0__["render"],
  _userRow_vue_vue_type_template_id_d19586ce___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

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

/***/ }),

/***/ "./src/components/userList/userRow.vue?vue&type=script&lang=js&":
/*!**********************************************************************!*\
  !*** ./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?!./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"]); 

/***/ }),

/***/ "./src/components/userList/userRow.vue?vue&type=template&id=d19586ce&":
/*!****************************************************************************!*\
  !*** ./src/components/userList/userRow.vue?vue&type=template&id=d19586ce& ***!
  \****************************************************************************/
/*! 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_d19586ce___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=d19586ce& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/userList/userRow.vue?vue&type=template&id=d19586ce&");
/* 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_d19586ce___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_d19586ce___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ }),

/***/ "./src/views/Users.vue":
/*!*****************************!*\
  !*** ./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_68be103e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Users.vue?vue&type=template&id=68be103e& */ "./src/views/Users.vue?vue&type=template&id=68be103e&");
/* harmony import */ var _Users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Users.vue?vue&type=script&lang=js& */ "./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_68be103e___WEBPACK_IMPORTED_MODULE_0__["render"],
  _Users_vue_vue_type_template_id_68be103e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
  false,
  null,
  null,
  null
  
)

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

/***/ }),

/***/ "./src/views/Users.vue?vue&type=script&lang=js&":
/*!******************************************************!*\
  !*** ./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?!./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"]); 

/***/ }),

/***/ "./src/views/Users.vue?vue&type=template&id=68be103e&":
/*!************************************************************!*\
  !*** ./src/views/Users.vue?vue&type=template&id=68be103e& ***!
  \************************************************************/
/*! 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_68be103e___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=68be103e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/views/Users.vue?vue&type=template&id=68be103e&");
/* 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_68be103e___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_68be103e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });



/***/ })

}]);
//# sourceMappingURL=2.js.map