{{ t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.') }}
@@ -76,7 +72,6 @@ import NcActionInput from '@nextcloud/vue/components/NcActionInput'
import NcActionText from '@nextcloud/vue/components/NcActionText'
import NcAppNavigationCaption from '@nextcloud/vue/components/NcAppNavigationCaption'
import NcAppNavigationList from '@nextcloud/vue/components/NcAppNavigationList'
-import NcAppNavigationSearch from '@nextcloud/vue/components/NcAppNavigationSearch'
import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
import GroupListItem from './GroupListItem.vue'
@@ -123,8 +118,8 @@ const newGroupName = ref('')
const loadingGroups = ref(false)
/** Search offset */
const offset = ref(0)
-/** Search query for groups */
-const groupsSearchQuery = ref('')
+/** Search query — shared via Vuex store */
+const groupsSearchQuery = computed(() => store.getters.getSearchQuery)
const filteredGroups = computed(() => {
if (isAdminOrDelegatedAdmin.value) {
return userGroups.value
diff --git a/apps/settings/src/components/UserList.vue b/apps/settings/src/components/UserList.vue
index 6b8eb542761dd..2992dfa18a5e5 100644
--- a/apps/settings/src/components/UserList.vue
+++ b/apps/settings/src/components/UserList.vue
@@ -64,7 +64,6 @@
","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRangeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRangeOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarRangeOutline.vue?vue&type=template&id=57d00bd1\"\nimport script from \"./CalendarRangeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarRangeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-range-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7 11H9V13H7V11M21 5V19C21 20.11 20.11 21 19 21H5C3.89 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H6V1H8V3H16V1H18V3H19C20.11 3 21 3.9 21 5M5 7H19V5H5V7M19 19V9H5V19H19M15 13H17V11H15V13M11 13H13V11H11V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=be2cf3ce\"\nimport script from \"./Filter.vue?vue&type=script&lang=js\"\nexport * from \"./Filter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon filter-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,12V19.88C14.04,20.18 13.94,20.5 13.71,20.71C13.32,21.1 12.69,21.1 12.3,20.71L10.29,18.7C10.06,18.47 9.96,18.16 10,17.87V12H9.97L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L14.03,12H14Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ListBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ListBox.vue?vue&type=script&lang=js\"","\n \n \n \n\n\n","import { render, staticRenderFns } from \"./ListBox.vue?vue&type=template&id=4e2b82c8\"\nimport script from \"./ListBox.vue?vue&type=script&lang=js\"\nexport * from \"./ListBox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon list-box-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"","\n \n \n \n\n\n","import { render, staticRenderFns } from \"./Magnify.vue?vue&type=template&id=194dfb2a\"\nimport script from \"./Magnify.vue?vue&type=script&lang=js\"\nexport * from \"./Magnify.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon magnify-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isModalOpen)?_c('NcModal',{attrs:{\"id\":\"unified-search\",\"name\":_vm.t('core', 'Custom date range'),\"show\":_vm.isModalOpen,\"size\":\"small\",\"clear-view-delay\":0,\"title\":_vm.t('core', 'Custom date range')},on:{\"update:show\":function($event){_vm.isModalOpen=$event},\"close\":_vm.closeModal}},[_c('div',{staticClass:\"unified-search-custom-date-modal\"},[_c('h1',[_vm._v(_vm._s(_vm.t('core', 'Custom date range')))]),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__pickers\"},[_c('NcDateTimePicker',{attrs:{\"id\":\"unifiedsearch-custom-date-range-start\",\"label\":_vm.t('core', 'Pick start date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.startFrom),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"startFrom\", $$v)},expression:\"dateFilter.startFrom\"}}),_vm._v(\" \"),_c('NcDateTimePicker',{attrs:{\"id\":\"unifiedsearch-custom-date-range-end\",\"label\":_vm.t('core', 'Pick end date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.endAt),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"endAt\", $$v)},expression:\"dateFilter.endAt\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"unified-search-custom-date-modal__footer\"},[_c('NcButton',{on:{\"click\":_vm.applyCustomRange},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3084610734)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in date range'))+\"\\n\\t\\t\\t\\t\")])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarRange.vue?vue&type=template&id=5868fd9e\"\nimport script from \"./CalendarRange.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarRange.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-range-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=script&lang=js\"","\n\n\t\n\t\t\n\t\t
\n\t\t\t
{{ t('core', 'Custom date range') }}
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomDateRangeModal.vue?vue&type=template&id=2907014b&scoped=true\"\nimport script from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nexport * from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomDateRangeModal.vue?vue&type=style&index=0&id=2907014b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2907014b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcPopover',{attrs:{\"shown\":_vm.opened},on:{\"show\":function($event){_vm.opened = true},\"hide\":function($event){_vm.opened = false}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_vm._t(\"trigger\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"searchable-list__wrapper\"},[_c('NcTextField',{attrs:{\"label\":_vm.labelText,\"trailing-button-icon\":\"close\",\"show-trailing-button\":_vm.searchTerm !== ''},on:{\"update:value\":_vm.searchTermChanged,\"trailing-button-click\":_vm.clearSearch},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}},[_c('IconMagnify',{attrs:{\"size\":20}})],1),_vm._v(\" \"),(_vm.filteredList.length > 0)?_c('ul',{staticClass:\"searchable-list__list\"},_vm._l((_vm.filteredList),function(element){return _c('li',{key:element.id,attrs:{\"title\":element.displayName,\"role\":\"button\"}},[_c('NcButton',{attrs:{\"alignment\":\"start\",\"variant\":\"tertiary\",\"wide\":true},on:{\"click\":function($event){return _vm.itemSelected(element)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(element.isUser)?_c('NcAvatar',{attrs:{\"user\":element.user,\"hide-user-status\":\"\"}}):_c('NcAvatar',{attrs:{\"is-no-user\":true,\"display-name\":element.displayName,\"hide-user-status\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(element.displayName)+\"\\n\\t\\t\\t\\t\")])],1)}),0):_c('div',{staticClass:\"searchable-list__empty-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentText},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t
\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7d1b9c72&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7d1b9c72&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=7d1b9c72&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=7d1b9c72&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d1b9c72\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=725c36d6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=725c36d6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=725c36d6&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=725c36d6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"725c36d6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1085698719)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=6c72a095&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c72a095\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon trash-can-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t\n\t\t\t\t
\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7d1b9c72&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7d1b9c72&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=7d1b9c72&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=7d1b9c72&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d1b9c72\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1fb04142&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1fb04142&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=1fb04142&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=1fb04142&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fb04142\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1085698719)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=6c72a095&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c72a095\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"account-management__search\",attrs:{\"role\":\"search\",\"aria-label\":_setup.t('settings', 'Search accounts and groups')}},[_c(_setup.NcInputField,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…'),\"show-trailing-button\":_setup.searchInput !== '',\"trailingButtonLabel\":_setup.t('settings', 'Clear search')},on:{\"trailing-button-click\":_setup.clearSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true},{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}]),model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}})],1),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon trash-can-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t\n\t\t\t\t
\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{ count }}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'Delete group') }}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=30743619&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30743619\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"model-value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\n/**\n *\n * @param groups\n */\nexport function useFormatGroups(groups) {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter((group) => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map((group) => formatGroupMenu(group))\n // remove invalid\n .filter((group) => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"submit\":_setup.createGroup},model:{value:(_setup.newGroupName),callback:function ($$v) {_setup.newGroupName=$$v},expression:\"newGroupName\"}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=00284738\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\"},model:{value:(_vm.showLanguages),callback:function ($$v) {_vm.showLanguages=$$v},expression:\"showLanguages\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\"},model:{value:(_vm.showUserBackend),callback:function ($$v) {_vm.showUserBackend=$$v},expression:\"showUserBackend\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\"},model:{value:(_vm.showStoragePath),callback:function ($$v) {_vm.showStoragePath=$$v},expression:\"showStoragePath\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\"},model:{value:(_vm.showFirstLogin),callback:function ($$v) {_vm.showFirstLogin=$$v},expression:\"showFirstLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\"},model:{value:(_vm.showLastLogin),callback:function ($$v) {_vm.showLastLogin=$$v},expression:\"showLastLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"disabled\":_vm.loadingSendMail},model:{value:(_vm.sendWelcomeMail),callback:function ($$v) {_vm.sendWelcomeMail=$$v},expression:\"sendWelcomeMail\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1),_vm._v(\" \"),_c('NcAppSettingsShortcutsSection',[_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Search')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Focus search'),\"hotkey\":\"Control F\"}})],1),_vm._v(\" \"),_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Help')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Show those shortcuts'),\"hotkey\":\"?\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show language') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show account backend') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show storage path') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show first login') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show last login') }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.') }}\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Send welcome email to new accounts') }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=649c1de8&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"649c1de8\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=0567bb0c&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0567bb0c\",\n null\n \n)\n\nexport default component.exports"],"names":["formatGroup","group","id","name","displayname","usercount","disabled","canAdd","canRemove","searchGroups","search","offset","limit","controller","AbortController","CancelablePromise","async","resolve","reject","onCancel","abort","data","axios","get","generateOcsUrl","signal","ocs","groups","map","error","loadUserGroups","userId","url","loadUserSubAdminGroups","unlimitedQuota","label","t","defaultQuota","isObfuscated","user","keys","Object","length","at","___CSS_LOADER_EXPORT___","push","module","components","NcButton","NcDialog","NcPasswordField","NcSelect","NcTextField","props","loading","type","required","newUser","quotaOptions","Array","possibleManagers","managerInputLabel","managerLabel","promise","computed","showConfig","$store","getters","getShowConfig","settings","getServerData","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","availableSubAdminGroups","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","mounted","$refs","username","focus","methods","createUser","all","dispatch","userid","password","displayName","email","mailAddress","subadmin","subAdminsGroups","quota","language","code","manager","$emit","response","meta","statuscode","query","toggleLoading","cancel","commit","logger","createGroup","gid","addGroup","isCreating","removeGroup","g","validateQuota","validQuota","OC","Util","computerFileSize","formatFileSize","parseFileSize","languageFilterBy","option","some","toLocaleLowerCase","includes","then","users","values","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","component","_vm","this","_c","_self","_g","staticClass","attrs","scopedSlots","_u","key","fn","_v","_s","proxy","$listeners","on","$event","preventDefault","apply","arguments","ref","model","value","callback","$$v","$set","expression","newUserRequireEmail","_e","showLanguages","class","Vue","extend","NcLoadingIcon","Boolean","filteredUsers","userCount","n","_setupProxy","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","edit","editSvg","SvgCheck","enabledActions","action","enabled","isSvg","toggleEdit","_l","icon","text","index","event","N","Symbol","toStringTag","default","externalActions","setup","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","usedSpace","quotaUsed","used","size","usedQuota","Math","min","round","pow","isNaN","userQuota","humanQuota","find","userLanguage","userLang","concat","lang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","formatDate","userLastLogin","relativeModifiedDate","userGroups","allGroups","getGroups","undefined","userSubAdminGroups","productName","window","theme","NcAvatar","NcProgressBar","UserRowActions","mixins","UserRowMixin","visible","selectedQuota","rand","random","toString","substring","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","delete","disable","wipe","editedDisplayName","editedMail","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","availableGroup","join","userSubAdminGroupsLabels","canEdit","getCurrentUser","uid","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","editedUserQuota","set","availableLanguages","initManager","confirmPassword","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","showSuccess","timeout","finally","filterManagers","managers","searchInitialUserManager","loadGroupsDetails","loadSubAdminGroupsDetails","updateUserManager","previousManager","showError","updateDisplayName","updateEmail","addUserGroup","removeUserGroup","$route","params","selectedGroup","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","$nextTick","displayNameField","inputField","input","backendCapabilities","setDisplayName","backend","storageLocation","directive","vElementVisibility","dataComponent","Function","dataKey","String","dataSources","itemHeight","Number","extraProps","bufferItems","headerHeight","tableHeight","resizeObserver","startIndex","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","root","$el","tfoot","thead","ResizeObserver","debounce","clientHeight","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","handleFooterVisibility","scrollTop","_t","style","item","i","_b","tag","directives","rawName","freeze","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","mdiAccountGroupOutline","rowHeight","UserRow","isInitialLoad","searchQuery","getSearchQuery","getUsers","quotaPreset","reduce","acc","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","watch","loadUsers","val","redirectIfDisabled","setNewUserDefaultGroup","created","canChangePassword","Notification","showTemporary","resetForm","handleScrollEnd","closeDialog","defaultLanguage","currentGroup","findIndex","$router","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","decodeURIComponent","OCA","Settings","registerAction","emit","emits","title","fillColor","$attrs","AccountGroup","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","NcModal","NcNoteCard","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","trim","displayNameInput","querySelector","groupid","formatGroupMenu","useFormatGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","__name","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","toLowerCase","groupListItems","lastGroupListItem","findLast","$vnode","listItem","isLastGroupVisible","useElementVisibility","__sfc","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","GroupListItem","_setup","refInFor","NcAppSettingsDialog","NcAppSettingsSection","NcAppSettingsShortcutsSection","NcCheckboxRadioSwitch","NcHotkey","NcHotkeyList","open","_","useHotKey","nextTick","document","getElementById","inline","stop","prevent","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","setShowConfig","newUserSendEmail","post","generateUrl","filterQuotas","searchValue","replaceAll","indexOf","setDefaultQuota","app","searchField","searchInput","commitSearch","onBeforeUnmount","clear","ctrl","isDialogOpen","getUserCount","clearSearch","showNewUserMenu","mdiAccountOffOutline","mdiAccountOutline","mdiClose","mdiCogOutline","mdiHistory","mdiMagnify","mdiShieldAccountOutline","NcAppNavigation","NcAppNavigationNew","NcInputField","AppNavigationGroupList","UserSettingsDialog","_k","keyCode"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/settings-vue-settings-apps-users-management.js b/dist/settings-vue-settings-apps-users-management.js
index 0e0f5e711b954..8ba27ac96827d 100644
--- a/dist/settings-vue-settings-apps-users-management.js
+++ b/dist/settings-vue-settings-apps-users-management.js
@@ -1,2 +1,2 @@
-(()=>{var e,o,n,i={6028(e,t,o){"use strict";o.d(t,{A:()=>s});var n=o(19051),i=o(77690);function r(e){return e.replace(/\/$/,"")}const s={requireAdmin:()=>(0,i.C5)(),get:(e,t)=>n.Ay.get(r(e),t),post:(e,t)=>n.Ay.post(r(e),t),patch:(e,t)=>n.Ay.patch(r(e),t),put:(e,t)=>n.Ay.put(r(e),t),delete:(e,t)=>n.Ay.delete(r(e),{params:t})}},36347(e,o,n){"use strict";n.d(o,{P:()=>N});var i=n(85168),r=n(95353),s=n(21106),a=n(19051),c=n(81222),u=n(63814),d=n(85471),p=n(6028);const l={apps:[],bundles:(0,c.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,c.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,c.C)("settings","appApiEnabled",!1)},f={APPS_API_FAILURE(e,o){(0,i.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+o.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:o})},initCategories(e,{categories:t,updateCount:o}){e.categories=t,e.updateCount=o},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:o}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=o})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:o}){const n=e.apps.find(e=>e.id===t);n.active=!0,d.Ay.set(n,"groups",[...o]),"app_api"===n.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:o}){const n=e.apps.find(e=>e.id===t);n&&(n.canInstall=!0===o)},disableApp(e,t){const o=e.apps.find(e=>e.id===t);o.active=!1,o.groups=[],o.removable&&(o.canUnInstall=!0),"app_api"===o.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const o=e.apps.find(e=>e.id===t),n=o.update;o.update=null,o.version=n,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{d.Ay.set(e.loading,t,!0)}):d.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{d.Ay.set(e.loading,t,!1)}):d.Ay.set(e.loading,t,!1)}},h={enableApp(e,{appId:o,groups:n}){let r;return r=Array.isArray(o)?o:[o],p.A.requireAdmin().then(()=>{e.commit("startLoading",r),e.commit("startLoading","install");const s={};return r.forEach(t=>{const o=e.state.apps.find(e=>e.id===t);o&&(s[t]={active:o.active,groups:[...o.groups||[]]},e.commit("enableApp",{appId:t,groups:n}))}),p.A.post((0,u.Jv)("settings/apps/enable"),{appIds:r,groups:n}).then(n=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),a.Ay.get((0,u.Jv)("apps/files/")).then(()=>{n.data.update_required&&((0,i.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(o)||((0,i.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:o}))}))).catch(t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))}),e.commit("setError",{appId:r,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:o,error:t})})}).catch(t=>e.commit("API_FAILURE",{appId:o,error:t}))},forceEnableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],p.A.requireAdmin().then(()=>(e.commit("startLoading",o),e.commit("startLoading","install"),p.A.post((0,u.Jv)("settings/apps/force"),{appId:t}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(n=>{e.commit("stopLoading",o),e.commit("stopLoading","install"),e.commit("setError",{appId:o,error:n.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:n})}).finally(()=>{e.commit("stopLoading",o),e.commit("stopLoading","install")}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},disableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],p.A.requireAdmin().then(()=>(e.commit("startLoading",o),p.A.post((0,u.Jv)("settings/apps/disable"),{appIds:o}).then(()=>(e.commit("stopLoading",o),o.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(n=>{e.commit("stopLoading",o),e.commit("APPS_API_FAILURE",{appId:t,error:n})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},uninstallApp:(e,{appId:t})=>p.A.requireAdmin().then(()=>(e.commit("startLoading",t),p.A.get((0,u.Jv)(`settings/apps/uninstall/${t}`)).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),updateApp:(e,{appId:t})=>p.A.requireAdmin().then(()=>(e.commit("startLoading",t),e.commit("startLoading","install"),p.A.get((0,u.Jv)(`settings/apps/update/${t}`)).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),getAllApps:e=>(e.commit("startLoading","list"),p.A.get((0,u.Jv)("settings/apps/list")).then(t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0)).catch(t=>e.commit("API_FAILURE",t))),async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=p.A.get((0,u.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const o=await t;return o.data.length>0?(e.commit("appendCategories",o.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},m={state:l,mutations:f,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:h},v={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:o,value:n})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:o}),{value:n}).catch(e=>{throw e})).catch(i=>e.commit("API_FAILURE",{app:t,key:o,value:n,error:i}))}},g={serverData:(0,c.C)("settings","usersSettings",{})},b={setServerData(e,t){e.serverData=t}},y={state:g,mutations:b,getters:{getServerData:e=>e.serverData},actions:{}};var _=n(87485),w=n(35810),A=n(54162),O=n(53334);const E=Intl.Collator([(0,O.Z0)(),(0,O.lO)()],{numeric:!0,usage:"sort"}),C=(0,c.C)("settings","usersSettings",{}),L={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},T={users:[],groups:[...C.getSubAdminGroups??[],...C.systemGroups??[]],orderBy:C.sortGroups??A.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,userCount:C.userCount??0,showConfig:{showStoragePath:C.showConfig?.user_list_show_storage_path,showUserBackend:C.showConfig?.user_list_show_user_backend,showFirstLogin:C.showConfig?.user_list_show_first_login,showLastLogin:C.showConfig?.user_list_show_last_login,showNewUserForm:C.showConfig?.user_list_show_new_user_form,showLanguages:C.showConfig?.user_list_show_languages}},I={appendUsers(e,t){const o=e.users.map(({id:e})=>e),n=Object.values(t).filter(({id:e})=>!o.includes(e)),i=e.users.concat(n);e.usersOffset+=e.usersLimit,e.users=i},updateDisabledUsers(e){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},addGroup(e,t){try{if(void 0!==e.groups.find(e=>e.id===t.id))return;const o={...L,...t};e.groups.unshift(o)}catch(e){s.A.error("Cannt create group",{error:e})}},renameGroup(e,{gid:t,displayName:o}){const n=e.groups.findIndex(e=>e.id===t);if(n>=0){const t=e.groups[n];t.name=o,e.groups.splice(n,1,t)}},removeGroup(e,t){const o=e.groups.findIndex(e=>e.id===t);o>=0&&e.groups.splice(o,1)},addUserGroup(e,{userid:t,gid:o}){const n=e.groups.find(e=>e.id===o),i=e.users.find(e=>e.id===t);n&&i.enabled&&e.userCount>0&&n.usercount++,i.groups.push(o)},removeUserGroup(e,{userid:t,gid:o}){const n=e.groups.find(e=>e.id===o),i=e.users.find(e=>e.id===t);n&&i.enabled&&e.userCount>0&&n.usercount--;const r=i.groups;r.splice(r.indexOf(o),1)},addUserSubAdmin(e,{userid:t,gid:o}){e.users.find(e=>e.id===t).subadmin.push(o)},removeUserSubAdmin(e,{userid:t,gid:o}){const n=e.users.find(e=>e.id===t).subadmin;n.splice(n.indexOf(o),1)},deleteUser(e,t){const o=e.users.findIndex(e=>e.id===t);this.commit("updateUserCounts",{user:e.users[o],actionType:"remove"}),e.users.splice(o,1)},addUserData(e,t){const o=t.data.ocs.data;e.users.unshift(o),this.commit("updateUserCounts",{user:o,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:o}){const n=e.users.find(e=>e.id===t);n.enabled=o,this.commit("updateUserCounts",{user:n,actionType:o?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:o}){if(0===e.userCount)return;const n=e.groups.find(e=>"__nc_internal_recent"===e.id),i=e.groups.find(e=>"disabled"===e.id);switch(o){case"enable":case"disable":i.usercount+=t.enabled?-1:1,n.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach(o=>{const n=e.groups.find(e=>e.id===o);n&&(n.disabled+=t.enabled?-1:1)});break;case"create":n.usercount++,e.userCount++,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.usercount++});break;case"remove":t.enabled?(n.usercount--,e.userCount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o?o.usercount--:s.A.warn("User group "+t+" does not exist during user removal")})):(i.usercount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.disabled--}));break;default:s.A.error(`Unknown action type in updateUserCounts: '${o}'`)}},setUserData(e,{userid:t,key:o,value:n}){if("quota"===o){const i=(0,w.lT)(n,!0);e.users.find(e=>e.id===t)[o][o]=null!==i?i:n}else e.users.find(e=>e.id===t)[o]=n},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...C.getSubAdminGroups??[],...C.systemGroups??[]]},setShowConfig(e,{key:t,value:o}){e.showConfig[t]=o},setGroupSorting(e,o){const n=e.orderBy;e.orderBy=o,a.Ay.post((0,u.Jv)("/settings/users/preferences/group.sortBy"),{value:String(o)}).catch(o=>{e.orderBy=n,(0,i.Qg)(t("settings","Could not set group sorting")),s.A.error(o)})}},P={getUsers:e=>e.users,getGroups:e=>e.groups,getSubAdminGroups:()=>C.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===A.q.UserCount?t.sort((e,t)=>{const o=e.usercount-e.disabled,n=t.usercount-t.disabled;return oE.compare(e.name,t.name))},getGroupSorting:e=>e.orderBy,getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},$=a.Ay.CancelToken;let S=null;const k={state:T,mutations:I,getters:P,actions:{searchUsers:(e,{offset:t,limit:o,search:n})=>(n="string"==typeof n?n:"",p.A.get((0,u.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n})).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUser:(e,t)=>p.A.get((0,u.KT)(`cloud/users/${t}`)).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}),getUsers:(e,{offset:t,limit:o,search:n,group:i})=>(S&&S.cancel("Operation canceled by another search request."),S=$.source(),n=(n="string"==typeof n?n:"").replace(/in:[^\s]+/g,"").trim(),""!==(i="string"==typeof i?i:"")?p.A.get((0,u.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(i),offset:t,limit:o,search:n}),{cancelToken:S.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}):p.A.get((0,u.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n}),{cancelToken:S.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),async getRecentUsers(e,{offset:t,limit:o,search:n}){const i=(0,u.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n});try{const t=await p.A.get(i),o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:o,search:n}){const i=(0,u.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n});try{const t=await p.A.get(i),o=Object.keys(t.data.ocs.data.users).length;return o>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),o}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:o,search:n}){n="string"==typeof n?n:"";const i=-1===o?"":`&limit=${o}`;return p.A.get((0,u.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:n})+i).then(t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach(function(t){e.commit("addGroup",{id:t,name:t})}),!0)).catch(t=>e.commit("API_FAILURE",t))},getUsersFromList:(e,{offset:t,limit:o,search:n})=>(n="string"==typeof n?n:"",p.A.get((0,u.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n})).then(t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0)).catch(t=>e.commit("API_FAILURE",t))),getUsersFromGroup:(e,{groupid:t,offset:o,limit:n})=>p.A.get((0,u.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:o,limit:n})).then(t=>e.commit("getUsersFromList",t.data.ocs.data.users)).catch(t=>e.commit("API_FAILURE",t)),getPasswordPolicyMinLength:e=>!(!(0,_.F)().password_policy||!(0,_.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,_.F)().password_policy.minLength),(0,_.F)().password_policy.minLength),addGroup:(e,t)=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/groups"),{groupid:t}).then(()=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{gid:t,error:o}),o}),renameGroup:(e,{groupid:t,displayName:o})=>p.A.requireAdmin().then(()=>p.A.put((0,u.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:o}).then(()=>(e.commit("renameGroup",{gid:t,displayName:o}),{groupid:t,displayName:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{groupid:t,error:o}),o}),removeGroup:(e,t)=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then(()=>e.commit("removeGroup",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{gid:t,error:o})),addUserGroup:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("addUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserGroup:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{userid:t,error:o}),o}),addUserSubAdmin:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("addUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserSubAdmin:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),async wipeUserDevices(e,t){try{return await p.A.requireAdmin(),await p.A.post((0,u.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(o){return e.commit("API_FAILURE",{userid:t,error:o}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/users/{userid}",{userid:t})).then(()=>e.commit("deleteUser",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),addUser:({commit:e,dispatch:t},{userid:o,password:n,displayName:i,email:r,groups:s,subadmin:a,quota:c,language:d,manager:l})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users"),{userid:o,password:n,displayName:i,email:r,groups:s,subadmin:a,quota:c,language:d,manager:l}).then(e=>t("addUserData",o||e.data.ocs.data.id)).catch(e=>{throw e})).catch(t=>{throw e("API_FAILURE",{userid:o,error:t}),t}),addUserData:(e,t)=>p.A.requireAdmin().then(()=>p.A.get((0,u.KT)("cloud/users/{userid}",{userid:t})).then(t=>e.commit("addUserData",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),enableDisableUser(e,{userid:t,enabled:o=!0}){const n=o?"enable":"disable";return p.A.requireAdmin().then(()=>p.A.put((0,u.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:n})).then(()=>e.commit("enableDisableUser",{userid:t,enabled:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o}))},async setUserData(e,{userid:t,key:o,value:n}){if(!["email","language","quota","displayname","password","manager"].includes(o))throw new Error("Invalid request data");if(""===n&&!["email","displayname","manager"].includes(o))throw new Error("Value cannot be empty for this field");try{return await p.A.requireAdmin(),await p.A.put((0,u.KT)("cloud/users/{userid}",{userid:t}),{key:o,value:n}),e.commit("setUserData",{userid:t,key:o,value:n})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},sendWelcomeMail:(e,t)=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users/{userid}/welcome",{userid:t})).then(()=>!0).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),migrateLocalStorage({commit:e}){const t={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[o,n]of Object.entries(t)){const t=`account_settings__${o}`,i=window.localStorage.getItem(t);if(null===i)continue;const r="true"===i;e("setShowConfig",{key:o,value:r}),a.Ay.post((0,u.Jv)(`/settings/users/preferences/${n}`),{value:r?"true":"false"}).then(()=>{window.localStorage.removeItem(t)}).catch(e=>{s.A.error(`Failed to migrate preference ${o}`,{error:e})})}},setShowConfig(e,{key:t,value:o}){e.commit("setShowConfig",{key:t,value:o}),a.Ay.post((0,u.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[t]}`),{value:o?"true":"false"}).catch(e=>s.A.error(`Could not update ${t} preference`,{error:e}))}}},U={API_FAILURE(e,o){try{const e=o.error.response.data.ocs.meta.message;(0,i.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+e,{isHTML:!0})}catch{(0,i.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:o})}};let x=null;function N(){return null===x&&(x=new r.il({modules:{users:k,apps:m,settings:y,oc:v},strict:!1,mutations:U})),x}},54162(e,t,o){"use strict";var n;o.d(t,{q:()=>n}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(n||(n={}))},21106(e,t,o){"use strict";o.d(t,{A:()=>n});const n=(0,o(35947).YK)().setApp("settings").detectUser().build()},35750(e,t,o){"use strict";var n=o(21777),i=o(53334),r=o(10810);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=s(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}function c(e,t,o){return(t=a(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function u(e,t){for(var o=0;o=0)return 1;return 0}(),l=d&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},p))}};function f(e){return e&&"[object Function]"==={}.toString.call(e)}function h(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?o[t]:o}function m(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function v(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=h(e),o=t.overflow,n=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(o+i+n)?e:v(m(e))}function g(e){return e&&e.referenceNode?e.referenceNode:e}var b=d&&!(!window.MSInputMethodContext||!document.documentMode),y=d&&/MSIE 10/.test(navigator.userAgent);function _(e){return 11===e?b:10===e?y:b||y}function w(e){if(!e)return document.documentElement;for(var t=_(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var n=o&&o.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(o.nodeName)&&"static"===h(o,"position")?w(o):o:e?e.ownerDocument.documentElement:document.documentElement}function A(e){return null!==e.parentNode?A(e.parentNode):e}function O(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var s,a,c=r.commonAncestorContainer;if(e!==c&&t!==c||n.contains(i))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&w(s.firstElementChild)!==s?w(c):c;var u=A(e);return u.host?O(u.host,t):O(e,A(t).host)}function E(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",o=e.nodeName;if("BODY"===o||"HTML"===o){var n=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||n)[t]}return e[t]}function C(e,t){var o="x"===t?"Left":"Top",n="Left"===o?"Right":"Bottom";return parseFloat(e["border"+o+"Width"])+parseFloat(e["border"+n+"Width"])}function L(e,t,o,n){return Math.max(t["offset"+e],t["scroll"+e],o["client"+e],o["offset"+e],o["scroll"+e],_(10)?parseInt(o["offset"+e])+parseInt(n["margin"+("Height"===e?"Top":"Left")])+parseInt(n["margin"+("Height"===e?"Bottom":"Right")]):0)}function T(e){var t=e.body,o=e.documentElement,n=_(10)&&getComputedStyle(o);return{height:L("Height",t,o,n),width:L("Width",t,o,n)}}var I=function(){function e(e,t){for(var o=0;o2&&void 0!==arguments[2]&&arguments[2],n=_(10),i="HTML"===t.nodeName,r=k(e),s=k(t),a=v(e),c=h(t),u=parseFloat(c.borderTopWidth),d=parseFloat(c.borderLeftWidth);o&&i&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var p=S({top:r.top-s.top-u,left:r.left-s.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!n&&i){var l=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);p.top-=u-l,p.bottom-=u-l,p.left-=d-f,p.right-=d-f,p.marginTop=l,p.marginLeft=f}return(n&&!o?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(p=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=E(t,"top"),i=E(t,"left"),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}(p,t)),p}function x(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===h(e,"position"))return!0;var o=m(e);return!!o&&x(o)}function N(e){if(!e||!e.parentElement||_())return document.documentElement;for(var t=e.parentElement;t&&"none"===h(t,"transform");)t=t.parentElement;return t||document.documentElement}function j(e,t,o,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=i?N(e):O(e,g(t));if("viewport"===n)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=U(e,o),i=Math.max(o.clientWidth,window.innerWidth||0),r=Math.max(o.clientHeight,window.innerHeight||0),s=t?0:E(o),a=t?0:E(o,"left");return S({top:s-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:i,height:r})}(s,i);else{var a=void 0;"scrollParent"===n?"BODY"===(a=v(m(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===n?e.ownerDocument.documentElement:n;var c=U(a,s,i);if("HTML"!==a.nodeName||x(s))r=c;else{var u=T(e.ownerDocument),d=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=d+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}var l="number"==typeof(o=o||0);return r.left+=l?o:o.left||0,r.top+=l?o:o.top||0,r.right-=l?o:o.right||0,r.bottom-=l?o:o.bottom||0,r}function D(e,t,o,n,i){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=j(o,n,r,i),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},c=Object.keys(a).map(function(e){return $({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=c.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),d=u.length>0?u[0].key:c[0].key,p=e.split("-")[1];return d+(p?"-"+p:"")}function F(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return U(o,n?N(t):O(t,g(o)),n)}function R(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),o=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),n=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+n,height:e.offsetHeight+o}}function M(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function H(e,t,o){o=o.split("-")[0];var n=R(e),i={width:n.width,height:n.height},r=-1!==["right","left"].indexOf(o),s=r?"top":"left",a=r?"left":"top",c=r?"height":"width",u=r?"width":"height";return i[s]=t[s]+t[c]/2-n[c]/2,i[a]=o===a?t[a]-n[u]:t[M(a)],i}function G(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function B(e,t,o){return(void 0===o?e:e.slice(0,function(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=G(e,function(e){return e[t]===o});return e.indexOf(n)}(e,"name",o))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=e.function||e.fn;e.enabled&&f(o)&&(t.offsets.popper=S(t.offsets.popper),t.offsets.reference=S(t.offsets.reference),t=o(t,e))}),t}function q(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=F(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=D(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=H(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=B(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function z(e,t){return e.some(function(e){var o=e.name;return e.enabled&&o===t})}function V(e){for(var t=[!1,"ms","Webkit","Moz","O"],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n1&&void 0!==arguments[1]&&arguments[1],o=ie.indexOf(e),n=ie.slice(o+1).concat(ie.slice(0,o));return t?n.reverse():n}var se={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split("-")[0],n=t.split("-")[1];if(n){var i=e.offsets,r=i.reference,s=i.popper,a=-1!==["bottom","top"].indexOf(o),c=a?"left":"top",u=a?"width":"height",d={start:P({},c,r[c]),end:P({},c,r[c]+r[u]-s[u])};e.offsets.popper=$({},s,d[n])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,s=r.popper,a=r.reference,c=i.split("-")[0];return o=Z(+n)?[+n,0]:function(e,t,o,n){var i=[0,0],r=-1!==["right","left"].indexOf(n),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(G(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(e,n){var i=(1===n?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],s=i[2];return r?0===s.indexOf("%")?S("%p"===s?o:n)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,i,t,o)})})).forEach(function(e,t){e.forEach(function(o,n){Z(o)&&(i[t]+=o*("-"===e[n-1]?-1:1))})}),i}(n,s,a,c),"left"===c?(s.top+=o[0],s.left-=o[1]):"right"===c?(s.top+=o[0],s.left+=o[1]):"top"===c?(s.left+=o[0],s.top-=o[1]):"bottom"===c&&(s.left+=o[0],s.top+=o[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||w(e.instance.popper);e.instance.reference===o&&(o=w(o));var n=V("transform"),i=e.instance.popper.style,r=i.top,s=i.left,a=i[n];i.top="",i.left="",i[n]="";var c=j(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=a,t.boundaries=c;var u=t.priority,d=e.offsets.popper,p={primary:function(e){var o=d[e];return d[e]c[e]&&!t.escapeWithReference&&(n=Math.min(d[o],c[e]-("right"===e?d.width:d.height))),P({},o,n)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=$({},d,p[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(i),a=s?"right":"bottom",c=s?"left":"top",u=s?"width":"height";return o[a]r(n[a])&&(e.offsets.popper[c]=r(n[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var o;if(!oe(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(i),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),l=c?"left":"top",f=c?"bottom":"right",m=R(n)[u];a[f]-ms[f]&&(e.offsets.popper[p]+=a[p]+m-s[f]),e.offsets.popper=S(e.offsets.popper);var v=a[p]+a[u]/2-m/2,g=h(e.instance.popper),b=parseFloat(g["margin"+d]),y=parseFloat(g["border"+d+"Width"]),_=v-e.offsets.popper[p]-b-y;return _=Math.max(Math.min(s[u]-m,_),0),e.arrowElement=n,e.offsets.arrow=(P(o={},p,Math.round(_)),P(o,l,""),o),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(z(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=j(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split("-")[0],i=M(n),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[n,i];break;case"clockwise":s=re(n);break;case"counterclockwise":s=re(n,!0);break;default:s=t.behavior}return s.forEach(function(a,c){if(n!==a||s.length===c+1)return e;n=e.placement.split("-")[0],i=M(n);var u=e.offsets.popper,d=e.offsets.reference,p=Math.floor,l="left"===n&&p(u.right)>p(d.left)||"right"===n&&p(u.left)
p(d.top)||"bottom"===n&&p(u.top)
p(o.right),m=p(u.top)
p(o.bottom),g="left"===n&&f||"right"===n&&h||"top"===n&&m||"bottom"===n&&v,b=-1!==["top","bottom"].indexOf(n),y=!!t.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&h||!b&&"start"===r&&m||!b&&"end"===r&&v),_=!!t.flipVariationsByContent&&(b&&"start"===r&&h||b&&"end"===r&&f||!b&&"start"===r&&v||!b&&"end"===r&&m),w=y||_;(l||g||w)&&(e.flipped=!0,(l||g)&&(n=s[c+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=n+(r?"-"+r:""),e.offsets.popper=$({},e.offsets.popper,H(e.instance.popper,e.offsets.reference,e.placement)),e=B(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split("-")[0],n=e.offsets,i=n.popper,r=n.reference,s=-1!==["left","right"].indexOf(o),a=-1===["top","left"].indexOf(o);return i[s?"left":"top"]=r[o]-(a?i[s?"width":"height"]:0),e.placement=M(t),e.offsets.popper=S(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!oe(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,o=G(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=l(this.update.bind(this)),this.options=$({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys($({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=$({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return $({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&f(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return I(e,[{key:"update",value:function(){return q.call(this)}},{key:"destroy",value:function(){return W.call(this)}},{key:"enableEventListeners",value:function(){return X.call(this)}},{key:"disableEventListeners",value:function(){return Q.call(this)}}]),e}();ce.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,ce.placements=ne,ce.Defaults=ae;const ue=ce;var de,pe=o(2404),le=o.n(pe);function fe(){fe.init||(fe.init=!0,de=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}function he(e,t,o,n,i,r,s,a,c,u){"boolean"!=typeof s&&(c=a,a=s,s=!1);var d,p="function"==typeof o?o.options:o;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,i&&(p.functional=!0)),n&&(p._scopeId=n),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},p._ssrRegister=d):t&&(d=s?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(p.functional){var l=p.render;p.render=function(e,t){return d.call(t),l(e,t)}}else{var f=p.beforeCreate;p.beforeCreate=f?[].concat(f,d):[d]}return o}var me={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;fe(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",de&&this.$el.appendChild(t),t.data="about:blank",de||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!de&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},ve=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};ve._withStripped=!0;var ge=he({render:ve,staticRenderFns:[]},void 0,me,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),be={version:"1.0.1",install:function(e){e.component("resize-observer",ge),e.component("ResizeObserver",ge)}},ye=null;"undefined"!=typeof window?ye=window.Vue:"undefined"!=typeof globalThis&&(ye=globalThis.Vue),ye&&ye.use(be);var _e=o(55364),we=o.n(_e),Ae=function(){};function Oe(e){return"string"==typeof e&&(e=e.split(" ")),e}function Ee(e,t){var o,n=Oe(t);o=e.className instanceof Ae?Oe(e.className.baseVal):Oe(e.className),n.forEach(function(e){-1===o.indexOf(e)&&o.push(e)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}function Ce(e,t){var o,n=Oe(t);o=e.className instanceof Ae?Oe(e.className.baseVal):Oe(e.className),n.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}"undefined"!=typeof window&&(Ae=window.SVGAnimatedString);var Le=!1;if("undefined"!=typeof window){Le=!1;try{var Te=Object.defineProperty({},"passive",{get:function(){Le=!0}});window.addEventListener("test",null,Te)}catch(e){}}function Ie(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function Pe(e){for(var t=1;t',trigger:"hover focus",offset:0},Se=[],ke=function(){function e(t,o){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"_events",[]),c(this,"_setTooltipNodeEvent",function(e,t,o,i){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!n._tooltipNode.contains(r)&&(n._tooltipNode.addEventListener(e.type,function o(r){var s=r.relatedreference||r.toElement||r.relatedTarget;n._tooltipNode.removeEventListener(e.type,o),t.contains(s)||n._scheduleHide(t,i.delay,i,r)}),!0)}),o=Pe(Pe({},$e),o),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=o,this._isOpen=!1,this._init()}return t=e,(o=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,o=e&&e.classes||Be.options.defaultClass;le()(this._classes,o)||(this.setClasses(o),t=!0),e=Fe(e);var n=!1,i=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(n=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(i=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(i){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else n&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var o=this,n=window.document.createElement("div");n.innerHTML=t.trim();var i=n.childNodes[0];return i.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),i.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(i.addEventListener("mouseenter",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)}),i.addEventListener("click",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)})),i}},{key:"_setContent",value:function(e,t){var o=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){o.popperInstance&&o.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var o=this;return new Promise(function(n,i){var r=t.html,s=o._tooltipNode;if(s){var a=s.querySelector(o.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var c=e();return void(c&&"function"==typeof c.then?(o.asyncContent=!0,t.loadingClass&&Ee(s,t.loadingClass),t.loadingContent&&o._applyContent(t.loadingContent,t),c.then(function(e){return t.loadingClass&&Ce(s,t.loadingClass),o._applyContent(e,t)}).then(n).catch(i)):o._applyContent(c,t).then(n).catch(i))}r?a.innerHTML=e:a.innerText=e}n()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var o=!0;this._tooltipNode&&(Ee(this._tooltipNode,this._classes),o=!1);var n=this._ensureShown(e,t);return o&&this._tooltipNode&&Ee(this._tooltipNode,this._classes),Ee(e,["v-tooltip-open"]),n}}},{key:"_ensureShown",value:function(e,t){var o=this;if(this._isOpen)return this;if(this._isOpen=!0,Se.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var n=e.getAttribute("title")||t.title;if(!n)return this;var i=this._create(e,t.template);this._tooltipNode=i,e.setAttribute("aria-describedby",i.id);var r=this._findContainer(t.container,e);this._append(i,r);var s=Pe(Pe({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Pe(Pe({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new ue(e,i,s),this._setContent(n,t),requestAnimationFrame(function(){!o._isDisposed&&o.popperInstance?(o.popperInstance.update(),requestAnimationFrame(function(){o._isDisposed?o.dispose():o._isOpen&&i.setAttribute("aria-hidden","false")})):o.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=Se.indexOf(this);-1!==e&&Se.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=Be.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Ce(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var o=t.func,n=t.event;e.reference.removeEventListener(n,o)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,o){var n=this,i=[],r=[];t.forEach(function(e){switch(e){case"hover":i.push("mouseenter"),r.push("mouseleave"),n.options.hideOnTargetClick&&r.push("click");break;case"focus":i.push("focus"),r.push("blur"),n.options.hideOnTargetClick&&r.push("click");break;case"click":i.push("click"),r.push("click")}}),i.forEach(function(t){var i=function(t){!0!==n._isOpen&&(t.usedByTooltip=!0,n._scheduleShow(e,o.delay,o,t))};n._events.push({event:t,func:i}),e.addEventListener(t,i)}),r.forEach(function(t){var i=function(t){!0!==t.usedByTooltip&&n._scheduleHide(e,o.delay,o,t)};n._events.push({event:t,func:i}),e.addEventListener(t,i)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,o){var n=this,i=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return n._show(e,o)},i)}},{key:"_scheduleHide",value:function(e,t,o,n){var i=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&i._tooltipNode.ownerDocument.body.contains(i._tooltipNode)){if("mouseleave"===n.type&&i._setTooltipNodeEvent(n,e,t,o))return;i._hide(e,o)}},r)}}])&&u(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,o}();function Ue(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function xe(e){for(var t=1;t',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Fe(e){var t={placement:void 0!==e.placement?e.placement:Be.options.defaultPlacement,delay:void 0!==e.delay?e.delay:Be.options.defaultDelay,html:void 0!==e.html?e.html:Be.options.defaultHtml,template:void 0!==e.template?e.template:Be.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:Be.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:Be.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:Be.options.defaultTrigger,offset:void 0!==e.offset?e.offset:Be.options.defaultOffset,container:void 0!==e.container?e.container:Be.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:Be.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:Be.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:Be.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:Be.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:Be.options.defaultLoadingContent,popperOptions:xe({},void 0!==e.popperOptions?e.popperOptions:Be.options.defaultPopperOptions)};if(t.offset){var o=s(t.offset),n=t.offset;("number"===o||"string"===o&&-1===n.indexOf(","))&&(n="0, ".concat(n)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:n}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function Re(e,t){for(var o=e.placement,n=0;n2&&void 0!==arguments[2]?arguments[2]:{},n=Me(t),i=void 0!==t.classes?t.classes:Be.options.defaultClass,r=xe({title:n},Fe(xe(xe({},"object"===s(t)?t:{}),{},{placement:Re(t,o)}))),a=e._tooltip=new ke(e,r);a.setClasses(i),a._vueEl=e;var c=void 0!==t.targetClasses?t.targetClasses:Be.options.defaultTargetClass;return e._tooltipTargetClasses=c,Ee(e,c),a}(e,o,i),void 0!==o.show&&o.show!==e._tooltipOldShow&&(e._tooltipOldShow=o.show,o.show?n.show():n.hide())):He(e)}var Be={options:De,bind:Ge,update:Ge,unbind:function(e){He(e)}};function qe(e){e.addEventListener("click",Ve),e.addEventListener("touchstart",We,!!Le&&{passive:!0})}function ze(e){e.removeEventListener("click",Ve),e.removeEventListener("touchstart",We),e.removeEventListener("touchend",Ke),e.removeEventListener("touchcancel",Ye)}function Ve(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function We(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var o=e.changedTouches[0];t.$_vclosepopover_touchPoint=o,t.addEventListener("touchend",Ke),t.addEventListener("touchcancel",Ye)}}function Ke(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var o=e.changedTouches[0],n=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(o.screenY-n.screenY)<20&&Math.abs(o.screenX-n.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Ye(e){e.currentTarget.$_vclosepopover_touch=!1}var Je={bind:function(e,t){var o=t.value,n=t.modifiers;e.$_closePopoverModifiers=n,(void 0===o||o)&&qe(e)},update:function(e,t){var o=t.value,n=t.oldValue,i=t.modifiers;e.$_closePopoverModifiers=i,o!==n&&(void 0===o||o?qe(e):ze(e))},unbind:function(e){ze(e)}};function Xe(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function Qe(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},o=t.event;t.skipDelay;var n=t.force;!(void 0!==n&&n)&&this.disabled||(this.$_scheduleShow(o),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,o=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var n=this.$_findContainer(this.container,t);if(!n)return void console.warn("No container for popover",this);n.appendChild(o),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var i=Qe(Qe({},this.popperOptions),{},{placement:this.placement});if(i.modifiers=Qe(Qe({},i.modifiers),{},{arrow:Qe(Qe({},i.modifiers&&i.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();i.modifiers.offset=Qe(Qe({},i.modifiers&&i.modifiers.offset),{},{offset:r})}this.boundariesElement&&(i.modifiers.preventOverflow=Qe(Qe({},i.modifiers&&i.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new ue(t,o,i),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,c=0;c1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),o)this.$_hide();else{var n=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},n)}},$_setTooltipNodeEvent:function(e){var t=this,o=this.$refs.trigger,n=this.$refs.popover,i=e.relatedreference||e.toElement||e.relatedTarget;return!!n.contains(i)&&(n.addEventListener(e.type,function i(r){var s=r.relatedreference||r.toElement||r.relatedTarget;n.removeEventListener(e.type,i),o.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var o=t.func,n=t.event;e.removeEventListener(n,o)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),o&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function it(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=function(o){var n=tt[o];if(n.$refs.popover){var i=n.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&i||n.autoHide&&!i)&&n.$_handleGlobalClose(e,t)})}},n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var n={};we()(n,De,o),ut.options=n,Be.options=n,t.directive("tooltip",Be),t.directive("close-popover",Je),t.component("VPopover",ct)}},get enabled(){return Ne.enabled},set enabled(e){Ne.enabled=e}},dt=null;"undefined"!=typeof window?dt=window.Vue:"undefined"!=typeof globalThis&&(dt=globalThis.Vue),dt&&dt.use(ut);const pt=ut;var lt=o(85471),ft=o(95353),ht=o(58723),mt=o(22378);const vt=(0,lt.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:mt.A})}),gt=(0,o(14486).A)(vt,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var bt=o(63814),yt=o(40173);const _t=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,66191)),navigation:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,19119))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,o(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,6572)),navigation:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31267)),sidebar:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31278))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];lt.Ay.use(yt.Ay);const wt=new yt.Ay({mode:"history",base:(0,bt.Jv)(""),linkActiveClass:"active",routes:_t});var At=o(36347);o.nc=(0,n.aV)(),lt.Ay.prototype.t=i.t,lt.Ay.prototype.n=i.n,lt.Ay.use(r.R2),lt.Ay.use(pt,{defaultHtml:!1}),lt.Ay.use(ft.Ay);const Ot=(0,At.P)();(0,ht.O)(Ot,wt);const Et=(0,r.Ey)();Ot.dispatch("migrateLocalStorage"),new lt.Ay({router:wt,store:Ot,pinia:Et,render:e=>e(gt),el:"#content"})},87805(e,t,o){var n=o(43360),i=o(75288);e.exports=function(e,t,o){(void 0!==o&&!i(e[t],o)||void 0===o&&!(t in e))&&n(e,t,o)}},85250(e,t,o){var n=o(37217),i=o(87805),r=o(86649),s=o(42824),a=o(23805),c=o(37241),u=o(14974);e.exports=function e(t,o,d,p,l){t!==o&&r(o,function(r,c){if(l||(l=new n),a(r))s(t,o,c,d,e,p,l);else{var f=p?p(u(t,c),r,c+"",t,o,l):void 0;void 0===f&&(f=r),i(t,c,f)}},c)}},42824(e,t,o){var n=o(87805),i=o(93290),r=o(71961),s=o(23007),a=o(35529),c=o(72428),u=o(56449),d=o(83693),p=o(3656),l=o(1882),f=o(23805),h=o(11331),m=o(37167),v=o(14974),g=o(69884);e.exports=function(e,t,o,b,y,_,w){var A=v(e,o),O=v(t,o),E=w.get(O);if(E)n(e,o,E);else{var C=_?_(A,O,o+"",e,t,w):void 0,L=void 0===C;if(L){var T=u(O),I=!T&&p(O),P=!T&&!I&&m(O);C=O,T||I||P?u(A)?C=A:d(A)?C=s(A):I?(L=!1,C=i(O,!0)):P?(L=!1,C=r(O,!0)):C=[]:h(O)||c(O)?(C=A,c(A)?C=g(A):f(A)&&!l(A)||(C=a(O))):L=!1}L&&(w.set(O,C),y(C,O,b,_,w),w.delete(O)),n(e,o,C)}}},20999(e,t,o){var n=o(69302),i=o(36800);e.exports=function(e){return n(function(t,o){var n=-1,r=o.length,s=r>1?o[r-1]:void 0,a=r>2?o[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&i(o[0],o[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++nk,il:()=>l});var n=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function i(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var o,n=(o=function(t){return t.original===e},t.filter(o)[0]);if(n)return n.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(o){r[o]=i(e[o],t)}),r}function r(e,t){Object.keys(e).forEach(function(o){return t(e[o],o)})}function s(e){return null!==e&&"object"==typeof e}var a=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var o=e.state;this.state=("function"==typeof o?o():o)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(e,t){this._children[e]=t},a.prototype.removeChild=function(e){delete this._children[e]},a.prototype.getChild=function(e){return this._children[e]},a.prototype.hasChild=function(e){return e in this._children},a.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},a.prototype.forEachChild=function(e){r(this._children,e)},a.prototype.forEachGetter=function(e){this._rawModule.getters&&r(this._rawModule.getters,e)},a.prototype.forEachAction=function(e){this._rawModule.actions&&r(this._rawModule.actions,e)},a.prototype.forEachMutation=function(e){this._rawModule.mutations&&r(this._rawModule.mutations,e)},Object.defineProperties(a.prototype,c);var u,d=function(e){this.register([],e,!1)};function p(e,t,o){if(t.update(o),o.modules)for(var n in o.modules){if(!t.getChild(n))return;p(e.concat(n),t.getChild(n),o.modules[n])}}d.prototype.get=function(e){return e.reduce(function(e,t){return e.getChild(t)},this.root)},d.prototype.getNamespace=function(e){var t=this.root;return e.reduce(function(e,o){return e+((t=t.getChild(o)).namespaced?o+"/":"")},"")},d.prototype.update=function(e){p([],this.root,e)},d.prototype.register=function(e,t,o){var n=this;void 0===o&&(o=!0);var i=new a(t,o);0===e.length?this.root=i:this.get(e.slice(0,-1)).addChild(e[e.length-1],i),t.modules&&r(t.modules,function(t,i){n.register(e.concat(i),t,o)})},d.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1],n=t.getChild(o);n&&n.runtime&&t.removeChild(o)},d.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1];return!!t&&t.hasChild(o)};var l=function(e){var t=this;void 0===e&&(e={}),!u&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var i=e.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var r=this,s=this.dispatch,a=this.commit;this.dispatch=function(e,t){return s.call(r,e,t)},this.commit=function(e,t,o){return a.call(r,e,t,o)},this.strict=i;var c=this._modules.root.state;g(this,c,[],this._modules.root),v(this,c),o.forEach(function(e){return e(t)}),(void 0!==e.devtools?e.devtools:u.config.devtools)&&function(e){n&&(e._devtoolHook=n,n.emit("vuex:init",e),n.on("vuex:travel-to-state",function(t){e.replaceState(t)}),e.subscribe(function(e,t){n.emit("vuex:mutation",e,t)},{prepend:!0}),e.subscribeAction(function(e,t){n.emit("vuex:action",e,t)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function h(e,t,o){return t.indexOf(e)<0&&(o&&o.prepend?t.unshift(e):t.push(e)),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}function m(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var o=e.state;g(e,o,[],e._modules.root,!0),v(e,o,t)}function v(e,t,o){var n=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var i=e._wrappedGetters,s={};r(i,function(t,o){s[o]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,o,{get:function(){return e._vm[o]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,e._vm=new u({data:{$$state:t},computed:s}),u.config.silent=a,e.strict&&function(e){e._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(e),n&&(o&&e._withCommit(function(){n._data.$$state=null}),u.nextTick(function(){return n.$destroy()}))}function g(e,t,o,n,i){var r=!o.length,s=e._modules.getNamespace(o);if(n.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=n),!r&&!i){var a=b(t,o.slice(0,-1)),c=o[o.length-1];e._withCommit(function(){u.set(a,c,n.state)})}var d=n.context=function(e,t,o){var n=""===t,i={dispatch:n?e.dispatch:function(o,n,i){var r=y(o,n,i),s=r.payload,a=r.options,c=r.type;return a&&a.root||(c=t+c),e.dispatch(c,s)},commit:n?e.commit:function(o,n,i){var r=y(o,n,i),s=r.payload,a=r.options,c=r.type;a&&a.root||(c=t+c),e.commit(c,s,a)}};return Object.defineProperties(i,{getters:{get:n?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var o={},n=t.length;Object.keys(e.getters).forEach(function(i){if(i.slice(0,n)===t){var r=i.slice(n);Object.defineProperty(o,r,{get:function(){return e.getters[i]},enumerable:!0})}}),e._makeLocalGettersCache[t]=o}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return b(e.state,o)}}}),i}(e,s,o);n.forEachMutation(function(t,o){!function(e,t,o,n){(e._mutations[t]||(e._mutations[t]=[])).push(function(t){o.call(e,n.state,t)})}(e,s+o,t,d)}),n.forEachAction(function(t,o){var n=t.root?o:s+o,i=t.handler||t;!function(e,t,o,n){(e._actions[t]||(e._actions[t]=[])).push(function(t){var i,r=o.call(e,{dispatch:n.dispatch,commit:n.commit,getters:n.getters,state:n.state,rootGetters:e.getters,rootState:e.state},t);return(i=r)&&"function"==typeof i.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch(function(t){throw e._devtoolHook.emit("vuex:error",t),t}):r})}(e,n,i,d)}),n.forEachGetter(function(t,o){!function(e,t,o,n){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return o(n.state,n.getters,e.state,e.getters)})}(e,s+o,t,d)}),n.forEachChild(function(n,r){g(e,t,o.concat(r),n,i)})}function b(e,t){return t.reduce(function(e,t){return e[t]},e)}function y(e,t,o){return s(e)&&e.type&&(o=t,t=e,e=e.type),{type:e,payload:t,options:o}}function _(e){u&&e===u||function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:o});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[o].concat(e.init):o,t.call(this,e)}}function o(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(u=e)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(e){},l.prototype.commit=function(e,t,o){var n=this,i=y(e,t,o),r=i.type,s=i.payload,a=(i.options,{type:r,payload:s}),c=this._mutations[r];c&&(this._withCommit(function(){c.forEach(function(e){e(s)})}),this._subscribers.slice().forEach(function(e){return e(a,n.state)}))},l.prototype.dispatch=function(e,t){var o=this,n=y(e,t),i=n.type,r=n.payload,s={type:i,payload:r},a=this._actions[i];if(a){try{this._actionSubscribers.slice().filter(function(e){return e.before}).forEach(function(e){return e.before(s,o.state)})}catch(e){}var c=a.length>1?Promise.all(a.map(function(e){return e(r)})):a[0](r);return new Promise(function(e,t){c.then(function(t){try{o._actionSubscribers.filter(function(e){return e.after}).forEach(function(e){return e.after(s,o.state)})}catch(e){}e(t)},function(e){try{o._actionSubscribers.filter(function(e){return e.error}).forEach(function(t){return t.error(s,o.state,e)})}catch(e){}t(e)})})}},l.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},l.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},l.prototype.watch=function(e,t,o){var n=this;return this._watcherVM.$watch(function(){return e(n.state,n.getters)},t,o)},l.prototype.replaceState=function(e){var t=this;this._withCommit(function(){t._vm._data.$$state=e})},l.prototype.registerModule=function(e,t,o){void 0===o&&(o={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),g(this,this.state,e,this._modules.get(e),o.preserveState),v(this,this.state)},l.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var o=b(t.state,e.slice(0,-1));u.delete(o,e[e.length-1])}),m(this)},l.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},l.prototype.hotUpdate=function(e){this._modules.update(e),m(this,!0)},l.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(l.prototype,f);var w=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;o[n]=function(){var t=this.$store.state,o=this.$store.getters;if(e){var n=T(this.$store,0,e);if(!n)return;t=n.context.state,o=n.context.getters}return"function"==typeof i?i.call(this,t,o):t[i]},o[n].vuex=!0}),o}),A=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;o[n]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var n=this.$store.commit;if(e){var r=T(this.$store,0,e);if(!r)return;n=r.context.commit}return"function"==typeof i?i.apply(this,[n].concat(t)):n.apply(this.$store,[i].concat(t))}}),o}),O=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;i=e+i,o[n]=function(){if(!e||T(this.$store,0,e))return this.$store.getters[i]},o[n].vuex=!0}),o}),E=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;o[n]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var n=this.$store.dispatch;if(e){var r=T(this.$store,0,e);if(!r)return;n=r.context.dispatch}return"function"==typeof i?i.apply(this,[n].concat(t)):n.apply(this.$store,[i].concat(t))}}),o});function C(e){return function(e){return Array.isArray(e)||s(e)}(e)?Array.isArray(e)?e.map(function(e){return{key:e,val:e}}):Object.keys(e).map(function(t){return{key:t,val:e[t]}}):[]}function L(e){return function(t,o){return"string"!=typeof t?(o=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,o)}}function T(e,t,o){return e._modulesNamespaceMap[o]}function I(e,t,o){var n=o?e.groupCollapsed:e.group;try{n.call(e,t)}catch(o){e.log(t)}}function P(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function $(){var e=new Date;return" @ "+S(e.getHours(),2)+":"+S(e.getMinutes(),2)+":"+S(e.getSeconds(),2)+"."+S(e.getMilliseconds(),3)}function S(e,t){return o=t-e.toString().length,new Array(o+1).join("0")+e;var o}const k={Store:l,install:_,version:"3.6.2",mapState:w,mapMutations:A,mapGetters:O,mapActions:E,createNamespacedHelpers:function(e){return{mapState:w.bind(null,e),mapGetters:O.bind(null,e),mapMutations:A.bind(null,e),mapActions:E.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var o=e.filter;void 0===o&&(o=function(e,t,o){return!0});var n=e.transformer;void 0===n&&(n=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var c=e.logMutations;void 0===c&&(c=!0);var u=e.logActions;void 0===u&&(u=!0);var d=e.logger;return void 0===d&&(d=console),function(e){var p=i(e.state);void 0!==d&&(c&&e.subscribe(function(e,s){var a=i(s);if(o(e,p,a)){var c=$(),u=r(e),l="mutation "+e.type+c;I(d,l,t),d.log("%c prev state","color: #9E9E9E; font-weight: bold",n(p)),d.log("%c mutation","color: #03A9F4; font-weight: bold",u),d.log("%c next state","color: #4CAF50; font-weight: bold",n(a)),P(d)}p=a}),u&&e.subscribeAction(function(e,o){if(s(e,o)){var n=$(),i=a(e),r="action "+e.type+n;I(d,r,t),d.log("%c action","color: #03A9F4; font-weight: bold",i),P(d)}}))}}}}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return i[e].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=i,e=[],s.O=(t,o,n,i)=>{if(!o){var r=1/0;for(d=0;d=i)&&Object.keys(s.O).every(e=>s.O[e](o[c]))?o.splice(c--,1):(a=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[o,n,i]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,o)=>(s.f[o](e,t),t),[])),s.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3079:"e25e60ee1af8efb023fb",3239:"640a94014ac1ee0e1f29",4529:"4e522ae06adb0b86d3f2",5448:"71cfe268d6f1213c4735",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",6197:"a372e411091ea8313019",6798:"1a6cf42d93801a926a3d",7471:"b4ac70873a3ab192efd0",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4",9646:"1f59e43b850fe6bc2360"}[e]),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},n="nextcloud-ui-legacy:",s.l=(e,t,i,r)=>{if(o[e])o[e].push(t);else{var a,c;if(void 0!==i)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var i=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(e=>e(n)),t)return t(n)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2689,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var n=o.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=o[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};s.f.j=(t,o)=>{var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else{var i=new Promise((o,i)=>n=e[t]=[o,i]);o.push(n[2]=i);var r=s.p+s.u(t),a=new Error;s.l(r,o=>{if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",a.name="ChunkLoadError",a.type=i,a.request=r,n[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[r,a,c]=o,u=0;if(r.some(t=>0!==e[t])){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);if(c)var d=c(s)}for(t&&t(o);us(35750));a=s.O(a)})();
-//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=714704fb94518b81e1d0
\ No newline at end of file
+(()=>{var e,o,n,i={6028(e,t,o){"use strict";o.d(t,{A:()=>s});var n=o(19051),i=o(77690);function r(e){return e.replace(/\/$/,"")}const s={requireAdmin:()=>(0,i.C5)(),get:(e,t)=>n.Ay.get(r(e),t),post:(e,t)=>n.Ay.post(r(e),t),patch:(e,t)=>n.Ay.patch(r(e),t),put:(e,t)=>n.Ay.put(r(e),t),delete:(e,t)=>n.Ay.delete(r(e),{params:t})}},36347(e,o,n){"use strict";n.d(o,{P:()=>N});var i=n(85168),r=n(95353),s=n(21106),a=n(19051),c=n(81222),u=n(63814),d=n(85471),p=n(6028);const l={apps:[],bundles:(0,c.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,c.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,c.C)("settings","appApiEnabled",!1)},f={APPS_API_FAILURE(e,o){(0,i.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+o.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:o})},initCategories(e,{categories:t,updateCount:o}){e.categories=t,e.updateCount=o},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:o}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=o})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:o}){const n=e.apps.find(e=>e.id===t);n.active=!0,d.Ay.set(n,"groups",[...o]),"app_api"===n.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:o}){const n=e.apps.find(e=>e.id===t);n&&(n.canInstall=!0===o)},disableApp(e,t){const o=e.apps.find(e=>e.id===t);o.active=!1,o.groups=[],o.removable&&(o.canUnInstall=!0),"app_api"===o.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const o=e.apps.find(e=>e.id===t),n=o.update;o.update=null,o.version=n,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{d.Ay.set(e.loading,t,!0)}):d.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{d.Ay.set(e.loading,t,!1)}):d.Ay.set(e.loading,t,!1)}},h={enableApp(e,{appId:o,groups:n}){let r;return r=Array.isArray(o)?o:[o],p.A.requireAdmin().then(()=>{e.commit("startLoading",r),e.commit("startLoading","install");const s={};return r.forEach(t=>{const o=e.state.apps.find(e=>e.id===t);o&&(s[t]={active:o.active,groups:[...o.groups||[]]},e.commit("enableApp",{appId:t,groups:n}))}),p.A.post((0,u.Jv)("settings/apps/enable"),{appIds:r,groups:n}).then(n=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),a.Ay.get((0,u.Jv)("apps/files/")).then(()=>{n.data.update_required&&((0,i.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(o)||((0,i.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:o}))}))).catch(t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))}),e.commit("setError",{appId:r,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:o,error:t})})}).catch(t=>e.commit("API_FAILURE",{appId:o,error:t}))},forceEnableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],p.A.requireAdmin().then(()=>(e.commit("startLoading",o),e.commit("startLoading","install"),p.A.post((0,u.Jv)("settings/apps/force"),{appId:t}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(n=>{e.commit("stopLoading",o),e.commit("stopLoading","install"),e.commit("setError",{appId:o,error:n.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:n})}).finally(()=>{e.commit("stopLoading",o),e.commit("stopLoading","install")}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},disableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],p.A.requireAdmin().then(()=>(e.commit("startLoading",o),p.A.post((0,u.Jv)("settings/apps/disable"),{appIds:o}).then(()=>(e.commit("stopLoading",o),o.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(n=>{e.commit("stopLoading",o),e.commit("APPS_API_FAILURE",{appId:t,error:n})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},uninstallApp:(e,{appId:t})=>p.A.requireAdmin().then(()=>(e.commit("startLoading",t),p.A.get((0,u.Jv)(`settings/apps/uninstall/${t}`)).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),updateApp:(e,{appId:t})=>p.A.requireAdmin().then(()=>(e.commit("startLoading",t),e.commit("startLoading","install"),p.A.get((0,u.Jv)(`settings/apps/update/${t}`)).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),getAllApps:e=>(e.commit("startLoading","list"),p.A.get((0,u.Jv)("settings/apps/list")).then(t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0)).catch(t=>e.commit("API_FAILURE",t))),async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=p.A.get((0,u.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const o=await t;return o.data.length>0?(e.commit("appendCategories",o.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},m={state:l,mutations:f,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:h},v={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:o,value:n})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:o}),{value:n}).catch(e=>{throw e})).catch(i=>e.commit("API_FAILURE",{app:t,key:o,value:n,error:i}))}},g={serverData:(0,c.C)("settings","usersSettings",{})},b={setServerData(e,t){e.serverData=t}},y={state:g,mutations:b,getters:{getServerData:e=>e.serverData},actions:{}};var _=n(87485),w=n(35810),A=n(54162),O=n(53334);const E=Intl.Collator([(0,O.Z0)(),(0,O.lO)()],{numeric:!0,usage:"sort"}),C=(0,c.C)("settings","usersSettings",{}),L={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},T={users:[],groups:[...C.getSubAdminGroups??[],...C.systemGroups??[]],orderBy:C.sortGroups??A.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:C.userCount??0,showConfig:{showStoragePath:C.showConfig?.user_list_show_storage_path,showUserBackend:C.showConfig?.user_list_show_user_backend,showFirstLogin:C.showConfig?.user_list_show_first_login,showLastLogin:C.showConfig?.user_list_show_last_login,showNewUserForm:C.showConfig?.user_list_show_new_user_form,showLanguages:C.showConfig?.user_list_show_languages}},I={appendUsers(e,t){const o=e.users.map(({id:e})=>e),n=Object.values(t).filter(({id:e})=>!o.includes(e)),i=e.users.concat(n);e.usersOffset+=e.usersLimit,e.users=i},updateDisabledUsers(e){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},addGroup(e,t){try{if(void 0!==e.groups.find(e=>e.id===t.id))return;const o={...L,...t};e.groups.unshift(o)}catch(e){s.A.error("Cannt create group",{error:e})}},renameGroup(e,{gid:t,displayName:o}){const n=e.groups.findIndex(e=>e.id===t);if(n>=0){const t=e.groups[n];t.name=o,e.groups.splice(n,1,t)}},removeGroup(e,t){const o=e.groups.findIndex(e=>e.id===t);o>=0&&e.groups.splice(o,1)},addUserGroup(e,{userid:t,gid:o}){const n=e.groups.find(e=>e.id===o),i=e.users.find(e=>e.id===t);n&&i.enabled&&e.userCount>0&&n.usercount++,i.groups.push(o)},removeUserGroup(e,{userid:t,gid:o}){const n=e.groups.find(e=>e.id===o),i=e.users.find(e=>e.id===t);n&&i.enabled&&e.userCount>0&&n.usercount--;const r=i.groups;r.splice(r.indexOf(o),1)},addUserSubAdmin(e,{userid:t,gid:o}){e.users.find(e=>e.id===t).subadmin.push(o)},removeUserSubAdmin(e,{userid:t,gid:o}){const n=e.users.find(e=>e.id===t).subadmin;n.splice(n.indexOf(o),1)},deleteUser(e,t){const o=e.users.findIndex(e=>e.id===t);this.commit("updateUserCounts",{user:e.users[o],actionType:"remove"}),e.users.splice(o,1)},addUserData(e,t){const o=t.data.ocs.data;e.users.unshift(o),this.commit("updateUserCounts",{user:o,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:o}){const n=e.users.find(e=>e.id===t);n.enabled=o,this.commit("updateUserCounts",{user:n,actionType:o?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:o}){if(0===e.userCount)return;const n=e.groups.find(e=>"__nc_internal_recent"===e.id),i=e.groups.find(e=>"disabled"===e.id);switch(o){case"enable":case"disable":i.usercount+=t.enabled?-1:1,n.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach(o=>{const n=e.groups.find(e=>e.id===o);n&&(n.disabled+=t.enabled?-1:1)});break;case"create":n.usercount++,e.userCount++,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.usercount++});break;case"remove":t.enabled?(n.usercount--,e.userCount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o?o.usercount--:s.A.warn("User group "+t+" does not exist during user removal")})):(i.usercount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.disabled--}));break;default:s.A.error(`Unknown action type in updateUserCounts: '${o}'`)}},setUserData(e,{userid:t,key:o,value:n}){if("quota"===o){const i=(0,w.lT)(n,!0);e.users.find(e=>e.id===t)[o][o]=null!==i?i:n}else e.users.find(e=>e.id===t)[o]=n},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...C.getSubAdminGroups??[],...C.systemGroups??[]]},setSearchQuery(e,t){e.searchQuery=t},setShowConfig(e,{key:t,value:o}){e.showConfig[t]=o},setGroupSorting(e,o){const n=e.orderBy;e.orderBy=o,a.Ay.post((0,u.Jv)("/settings/users/preferences/group.sortBy"),{value:String(o)}).catch(o=>{e.orderBy=n,(0,i.Qg)(t("settings","Could not set group sorting")),s.A.error(o)})}},P={getUsers:e=>e.users,getGroups:e=>e.groups,getSearchQuery:e=>e.searchQuery,getSubAdminGroups:()=>C.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===A.q.UserCount?t.sort((e,t)=>{const o=e.usercount-e.disabled,n=t.usercount-t.disabled;return oE.compare(e.name,t.name))},getGroupSorting:e=>e.orderBy,getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},$=a.Ay.CancelToken;let S=null;const k={state:T,mutations:I,getters:P,actions:{searchUsers:(e,{offset:t,limit:o,search:n})=>(n="string"==typeof n?n:"",p.A.get((0,u.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n})).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUser:(e,t)=>p.A.get((0,u.KT)(`cloud/users/${t}`)).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}),getUsers:(e,{offset:t,limit:o,search:n,group:i})=>(S&&S.cancel("Operation canceled by another search request."),S=$.source(),n="string"==typeof n?n:"",""!==(i="string"==typeof i?i:"")?p.A.get((0,u.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(i),offset:t,limit:o,search:n}),{cancelToken:S.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}):p.A.get((0,u.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n}),{cancelToken:S.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),async getRecentUsers(e,{offset:t,limit:o,search:n}){const i=(0,u.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n});try{const t=await p.A.get(i),o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:o,search:n}){const i=(0,u.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n});try{const t=await p.A.get(i),o=Object.keys(t.data.ocs.data.users).length;return o>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),o}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:o,search:n}){n="string"==typeof n?n:"";const i=-1===o?"":`&limit=${o}`;return p.A.get((0,u.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:n})+i).then(t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach(function(t){e.commit("addGroup",{id:t,name:t})}),!0)).catch(t=>e.commit("API_FAILURE",t))},getUsersFromList:(e,{offset:t,limit:o,search:n})=>(n="string"==typeof n?n:"",p.A.get((0,u.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:n})).then(t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0)).catch(t=>e.commit("API_FAILURE",t))),getUsersFromGroup:(e,{groupid:t,offset:o,limit:n})=>p.A.get((0,u.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:o,limit:n})).then(t=>e.commit("getUsersFromList",t.data.ocs.data.users)).catch(t=>e.commit("API_FAILURE",t)),getPasswordPolicyMinLength:e=>!(!(0,_.F)().password_policy||!(0,_.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,_.F)().password_policy.minLength),(0,_.F)().password_policy.minLength),addGroup:(e,t)=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/groups"),{groupid:t}).then(()=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{gid:t,error:o}),o}),renameGroup:(e,{groupid:t,displayName:o})=>p.A.requireAdmin().then(()=>p.A.put((0,u.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:o}).then(()=>(e.commit("renameGroup",{gid:t,displayName:o}),{groupid:t,displayName:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{groupid:t,error:o}),o}),removeGroup:(e,t)=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then(()=>e.commit("removeGroup",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{gid:t,error:o})),addUserGroup:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("addUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserGroup:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{userid:t,error:o}),o}),addUserSubAdmin:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("addUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserSubAdmin:(e,{userid:t,gid:o})=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),async wipeUserDevices(e,t){try{return await p.A.requireAdmin(),await p.A.post((0,u.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(o){return e.commit("API_FAILURE",{userid:t,error:o}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>p.A.requireAdmin().then(()=>p.A.delete((0,u.KT)("cloud/users/{userid}",{userid:t})).then(()=>e.commit("deleteUser",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),addUser:({commit:e,dispatch:t},{userid:o,password:n,displayName:i,email:r,groups:s,subadmin:a,quota:c,language:d,manager:l})=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users"),{userid:o,password:n,displayName:i,email:r,groups:s,subadmin:a,quota:c,language:d,manager:l}).then(e=>t("addUserData",o||e.data.ocs.data.id)).catch(e=>{throw e})).catch(t=>{throw e("API_FAILURE",{userid:o,error:t}),t}),addUserData:(e,t)=>p.A.requireAdmin().then(()=>p.A.get((0,u.KT)("cloud/users/{userid}",{userid:t})).then(t=>e.commit("addUserData",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),enableDisableUser(e,{userid:t,enabled:o=!0}){const n=o?"enable":"disable";return p.A.requireAdmin().then(()=>p.A.put((0,u.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:n})).then(()=>e.commit("enableDisableUser",{userid:t,enabled:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o}))},async setUserData(e,{userid:t,key:o,value:n}){if(!["email","language","quota","displayname","password","manager"].includes(o))throw new Error("Invalid request data");if(""===n&&!["email","displayname","manager"].includes(o))throw new Error("Value cannot be empty for this field");try{return await p.A.requireAdmin(),await p.A.put((0,u.KT)("cloud/users/{userid}",{userid:t}),{key:o,value:n}),e.commit("setUserData",{userid:t,key:o,value:n})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},sendWelcomeMail:(e,t)=>p.A.requireAdmin().then(()=>p.A.post((0,u.KT)("cloud/users/{userid}/welcome",{userid:t})).then(()=>!0).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),migrateLocalStorage({commit:e}){const t={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[o,n]of Object.entries(t)){const t=`account_settings__${o}`,i=window.localStorage.getItem(t);if(null===i)continue;const r="true"===i;e("setShowConfig",{key:o,value:r}),a.Ay.post((0,u.Jv)(`/settings/users/preferences/${n}`),{value:r?"true":"false"}).then(()=>{window.localStorage.removeItem(t)}).catch(e=>{s.A.error(`Failed to migrate preference ${o}`,{error:e})})}},setShowConfig(e,{key:t,value:o}){e.commit("setShowConfig",{key:t,value:o}),a.Ay.post((0,u.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[t]}`),{value:o?"true":"false"}).catch(e=>s.A.error(`Could not update ${t} preference`,{error:e}))}}},U={API_FAILURE(e,o){try{const e=o.error.response.data.ocs.meta.message;(0,i.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+e,{isHTML:!0})}catch{(0,i.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:o})}};let x=null;function N(){return null===x&&(x=new r.il({modules:{users:k,apps:m,settings:y,oc:v},strict:!1,mutations:U})),x}},54162(e,t,o){"use strict";var n;o.d(t,{q:()=>n}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(n||(n={}))},21106(e,t,o){"use strict";o.d(t,{A:()=>n});const n=(0,o(35947).YK)().setApp("settings").detectUser().build()},35750(e,t,o){"use strict";var n=o(21777),i=o(53334),r=o(10810);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=s(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}function c(e,t,o){return(t=a(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function u(e,t){for(var o=0;o=0)return 1;return 0}(),l=d&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},p))}};function f(e){return e&&"[object Function]"==={}.toString.call(e)}function h(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?o[t]:o}function m(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function v(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=h(e),o=t.overflow,n=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(o+i+n)?e:v(m(e))}function g(e){return e&&e.referenceNode?e.referenceNode:e}var b=d&&!(!window.MSInputMethodContext||!document.documentMode),y=d&&/MSIE 10/.test(navigator.userAgent);function _(e){return 11===e?b:10===e?y:b||y}function w(e){if(!e)return document.documentElement;for(var t=_(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var n=o&&o.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(o.nodeName)&&"static"===h(o,"position")?w(o):o:e?e.ownerDocument.documentElement:document.documentElement}function A(e){return null!==e.parentNode?A(e.parentNode):e}function O(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var s,a,c=r.commonAncestorContainer;if(e!==c&&t!==c||n.contains(i))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&w(s.firstElementChild)!==s?w(c):c;var u=A(e);return u.host?O(u.host,t):O(e,A(t).host)}function E(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",o=e.nodeName;if("BODY"===o||"HTML"===o){var n=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||n)[t]}return e[t]}function C(e,t){var o="x"===t?"Left":"Top",n="Left"===o?"Right":"Bottom";return parseFloat(e["border"+o+"Width"])+parseFloat(e["border"+n+"Width"])}function L(e,t,o,n){return Math.max(t["offset"+e],t["scroll"+e],o["client"+e],o["offset"+e],o["scroll"+e],_(10)?parseInt(o["offset"+e])+parseInt(n["margin"+("Height"===e?"Top":"Left")])+parseInt(n["margin"+("Height"===e?"Bottom":"Right")]):0)}function T(e){var t=e.body,o=e.documentElement,n=_(10)&&getComputedStyle(o);return{height:L("Height",t,o,n),width:L("Width",t,o,n)}}var I=function(){function e(e,t){for(var o=0;o2&&void 0!==arguments[2]&&arguments[2],n=_(10),i="HTML"===t.nodeName,r=k(e),s=k(t),a=v(e),c=h(t),u=parseFloat(c.borderTopWidth),d=parseFloat(c.borderLeftWidth);o&&i&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var p=S({top:r.top-s.top-u,left:r.left-s.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!n&&i){var l=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);p.top-=u-l,p.bottom-=u-l,p.left-=d-f,p.right-=d-f,p.marginTop=l,p.marginLeft=f}return(n&&!o?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(p=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=E(t,"top"),i=E(t,"left"),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}(p,t)),p}function x(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===h(e,"position"))return!0;var o=m(e);return!!o&&x(o)}function N(e){if(!e||!e.parentElement||_())return document.documentElement;for(var t=e.parentElement;t&&"none"===h(t,"transform");)t=t.parentElement;return t||document.documentElement}function j(e,t,o,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=i?N(e):O(e,g(t));if("viewport"===n)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=U(e,o),i=Math.max(o.clientWidth,window.innerWidth||0),r=Math.max(o.clientHeight,window.innerHeight||0),s=t?0:E(o),a=t?0:E(o,"left");return S({top:s-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:i,height:r})}(s,i);else{var a=void 0;"scrollParent"===n?"BODY"===(a=v(m(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===n?e.ownerDocument.documentElement:n;var c=U(a,s,i);if("HTML"!==a.nodeName||x(s))r=c;else{var u=T(e.ownerDocument),d=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=d+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}var l="number"==typeof(o=o||0);return r.left+=l?o:o.left||0,r.top+=l?o:o.top||0,r.right-=l?o:o.right||0,r.bottom-=l?o:o.bottom||0,r}function D(e,t,o,n,i){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=j(o,n,r,i),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},c=Object.keys(a).map(function(e){return $({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=c.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),d=u.length>0?u[0].key:c[0].key,p=e.split("-")[1];return d+(p?"-"+p:"")}function F(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return U(o,n?N(t):O(t,g(o)),n)}function R(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),o=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),n=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+n,height:e.offsetHeight+o}}function M(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function H(e,t,o){o=o.split("-")[0];var n=R(e),i={width:n.width,height:n.height},r=-1!==["right","left"].indexOf(o),s=r?"top":"left",a=r?"left":"top",c=r?"height":"width",u=r?"width":"height";return i[s]=t[s]+t[c]/2-n[c]/2,i[a]=o===a?t[a]-n[u]:t[M(a)],i}function G(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function B(e,t,o){return(void 0===o?e:e.slice(0,function(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=G(e,function(e){return e[t]===o});return e.indexOf(n)}(e,"name",o))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=e.function||e.fn;e.enabled&&f(o)&&(t.offsets.popper=S(t.offsets.popper),t.offsets.reference=S(t.offsets.reference),t=o(t,e))}),t}function q(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=F(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=D(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=H(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=B(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function z(e,t){return e.some(function(e){var o=e.name;return e.enabled&&o===t})}function V(e){for(var t=[!1,"ms","Webkit","Moz","O"],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n1&&void 0!==arguments[1]&&arguments[1],o=ie.indexOf(e),n=ie.slice(o+1).concat(ie.slice(0,o));return t?n.reverse():n}var se={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split("-")[0],n=t.split("-")[1];if(n){var i=e.offsets,r=i.reference,s=i.popper,a=-1!==["bottom","top"].indexOf(o),c=a?"left":"top",u=a?"width":"height",d={start:P({},c,r[c]),end:P({},c,r[c]+r[u]-s[u])};e.offsets.popper=$({},s,d[n])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,s=r.popper,a=r.reference,c=i.split("-")[0];return o=Z(+n)?[+n,0]:function(e,t,o,n){var i=[0,0],r=-1!==["right","left"].indexOf(n),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(G(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(e,n){var i=(1===n?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],s=i[2];return r?0===s.indexOf("%")?S("%p"===s?o:n)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,i,t,o)})})).forEach(function(e,t){e.forEach(function(o,n){Z(o)&&(i[t]+=o*("-"===e[n-1]?-1:1))})}),i}(n,s,a,c),"left"===c?(s.top+=o[0],s.left-=o[1]):"right"===c?(s.top+=o[0],s.left+=o[1]):"top"===c?(s.left+=o[0],s.top-=o[1]):"bottom"===c&&(s.left+=o[0],s.top+=o[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||w(e.instance.popper);e.instance.reference===o&&(o=w(o));var n=V("transform"),i=e.instance.popper.style,r=i.top,s=i.left,a=i[n];i.top="",i.left="",i[n]="";var c=j(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=a,t.boundaries=c;var u=t.priority,d=e.offsets.popper,p={primary:function(e){var o=d[e];return d[e]c[e]&&!t.escapeWithReference&&(n=Math.min(d[o],c[e]-("right"===e?d.width:d.height))),P({},o,n)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=$({},d,p[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(i),a=s?"right":"bottom",c=s?"left":"top",u=s?"width":"height";return o[a]r(n[a])&&(e.offsets.popper[c]=r(n[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var o;if(!oe(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(i),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),l=c?"left":"top",f=c?"bottom":"right",m=R(n)[u];a[f]-ms[f]&&(e.offsets.popper[p]+=a[p]+m-s[f]),e.offsets.popper=S(e.offsets.popper);var v=a[p]+a[u]/2-m/2,g=h(e.instance.popper),b=parseFloat(g["margin"+d]),y=parseFloat(g["border"+d+"Width"]),_=v-e.offsets.popper[p]-b-y;return _=Math.max(Math.min(s[u]-m,_),0),e.arrowElement=n,e.offsets.arrow=(P(o={},p,Math.round(_)),P(o,l,""),o),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(z(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=j(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split("-")[0],i=M(n),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[n,i];break;case"clockwise":s=re(n);break;case"counterclockwise":s=re(n,!0);break;default:s=t.behavior}return s.forEach(function(a,c){if(n!==a||s.length===c+1)return e;n=e.placement.split("-")[0],i=M(n);var u=e.offsets.popper,d=e.offsets.reference,p=Math.floor,l="left"===n&&p(u.right)>p(d.left)||"right"===n&&p(u.left)
p(d.top)||"bottom"===n&&p(u.top)
p(o.right),m=p(u.top)
p(o.bottom),g="left"===n&&f||"right"===n&&h||"top"===n&&m||"bottom"===n&&v,b=-1!==["top","bottom"].indexOf(n),y=!!t.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&h||!b&&"start"===r&&m||!b&&"end"===r&&v),_=!!t.flipVariationsByContent&&(b&&"start"===r&&h||b&&"end"===r&&f||!b&&"start"===r&&v||!b&&"end"===r&&m),w=y||_;(l||g||w)&&(e.flipped=!0,(l||g)&&(n=s[c+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=n+(r?"-"+r:""),e.offsets.popper=$({},e.offsets.popper,H(e.instance.popper,e.offsets.reference,e.placement)),e=B(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split("-")[0],n=e.offsets,i=n.popper,r=n.reference,s=-1!==["left","right"].indexOf(o),a=-1===["top","left"].indexOf(o);return i[s?"left":"top"]=r[o]-(a?i[s?"width":"height"]:0),e.placement=M(t),e.offsets.popper=S(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!oe(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,o=G(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=l(this.update.bind(this)),this.options=$({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys($({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=$({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return $({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&f(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return I(e,[{key:"update",value:function(){return q.call(this)}},{key:"destroy",value:function(){return W.call(this)}},{key:"enableEventListeners",value:function(){return Q.call(this)}},{key:"disableEventListeners",value:function(){return X.call(this)}}]),e}();ce.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,ce.placements=ne,ce.Defaults=ae;const ue=ce;var de,pe=o(2404),le=o.n(pe);function fe(){fe.init||(fe.init=!0,de=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}())}function he(e,t,o,n,i,r,s,a,c,u){"boolean"!=typeof s&&(c=a,a=s,s=!1);var d,p="function"==typeof o?o.options:o;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,i&&(p.functional=!0)),n&&(p._scopeId=n),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},p._ssrRegister=d):t&&(d=s?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(p.functional){var l=p.render;p.render=function(e,t){return d.call(t),l(e,t)}}else{var f=p.beforeCreate;p.beforeCreate=f?[].concat(f,d):[d]}return o}var me={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;fe(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",de&&this.$el.appendChild(t),t.data="about:blank",de||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!de&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},ve=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};ve._withStripped=!0;var ge=he({render:ve,staticRenderFns:[]},void 0,me,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),be={version:"1.0.1",install:function(e){e.component("resize-observer",ge),e.component("ResizeObserver",ge)}},ye=null;"undefined"!=typeof window?ye=window.Vue:"undefined"!=typeof globalThis&&(ye=globalThis.Vue),ye&&ye.use(be);var _e=o(55364),we=o.n(_e),Ae=function(){};function Oe(e){return"string"==typeof e&&(e=e.split(" ")),e}function Ee(e,t){var o,n=Oe(t);o=e.className instanceof Ae?Oe(e.className.baseVal):Oe(e.className),n.forEach(function(e){-1===o.indexOf(e)&&o.push(e)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}function Ce(e,t){var o,n=Oe(t);o=e.className instanceof Ae?Oe(e.className.baseVal):Oe(e.className),n.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}"undefined"!=typeof window&&(Ae=window.SVGAnimatedString);var Le=!1;if("undefined"!=typeof window){Le=!1;try{var Te=Object.defineProperty({},"passive",{get:function(){Le=!0}});window.addEventListener("test",null,Te)}catch(e){}}function Ie(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function Pe(e){for(var t=1;t',trigger:"hover focus",offset:0},Se=[],ke=function(){function e(t,o){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"_events",[]),c(this,"_setTooltipNodeEvent",function(e,t,o,i){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!n._tooltipNode.contains(r)&&(n._tooltipNode.addEventListener(e.type,function o(r){var s=r.relatedreference||r.toElement||r.relatedTarget;n._tooltipNode.removeEventListener(e.type,o),t.contains(s)||n._scheduleHide(t,i.delay,i,r)}),!0)}),o=Pe(Pe({},$e),o),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=o,this._isOpen=!1,this._init()}return t=e,(o=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,o=e&&e.classes||Be.options.defaultClass;le()(this._classes,o)||(this.setClasses(o),t=!0),e=Fe(e);var n=!1,i=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(n=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(i=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(i){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else n&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var o=this,n=window.document.createElement("div");n.innerHTML=t.trim();var i=n.childNodes[0];return i.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),i.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(i.addEventListener("mouseenter",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)}),i.addEventListener("click",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)})),i}},{key:"_setContent",value:function(e,t){var o=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){o.popperInstance&&o.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var o=this;return new Promise(function(n,i){var r=t.html,s=o._tooltipNode;if(s){var a=s.querySelector(o.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var c=e();return void(c&&"function"==typeof c.then?(o.asyncContent=!0,t.loadingClass&&Ee(s,t.loadingClass),t.loadingContent&&o._applyContent(t.loadingContent,t),c.then(function(e){return t.loadingClass&&Ce(s,t.loadingClass),o._applyContent(e,t)}).then(n).catch(i)):o._applyContent(c,t).then(n).catch(i))}r?a.innerHTML=e:a.innerText=e}n()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var o=!0;this._tooltipNode&&(Ee(this._tooltipNode,this._classes),o=!1);var n=this._ensureShown(e,t);return o&&this._tooltipNode&&Ee(this._tooltipNode,this._classes),Ee(e,["v-tooltip-open"]),n}}},{key:"_ensureShown",value:function(e,t){var o=this;if(this._isOpen)return this;if(this._isOpen=!0,Se.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var n=e.getAttribute("title")||t.title;if(!n)return this;var i=this._create(e,t.template);this._tooltipNode=i,e.setAttribute("aria-describedby",i.id);var r=this._findContainer(t.container,e);this._append(i,r);var s=Pe(Pe({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Pe(Pe({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new ue(e,i,s),this._setContent(n,t),requestAnimationFrame(function(){!o._isDisposed&&o.popperInstance?(o.popperInstance.update(),requestAnimationFrame(function(){o._isDisposed?o.dispose():o._isOpen&&i.setAttribute("aria-hidden","false")})):o.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=Se.indexOf(this);-1!==e&&Se.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=Be.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Ce(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var o=t.func,n=t.event;e.reference.removeEventListener(n,o)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,o){var n=this,i=[],r=[];t.forEach(function(e){switch(e){case"hover":i.push("mouseenter"),r.push("mouseleave"),n.options.hideOnTargetClick&&r.push("click");break;case"focus":i.push("focus"),r.push("blur"),n.options.hideOnTargetClick&&r.push("click");break;case"click":i.push("click"),r.push("click")}}),i.forEach(function(t){var i=function(t){!0!==n._isOpen&&(t.usedByTooltip=!0,n._scheduleShow(e,o.delay,o,t))};n._events.push({event:t,func:i}),e.addEventListener(t,i)}),r.forEach(function(t){var i=function(t){!0!==t.usedByTooltip&&n._scheduleHide(e,o.delay,o,t)};n._events.push({event:t,func:i}),e.addEventListener(t,i)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,o){var n=this,i=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return n._show(e,o)},i)}},{key:"_scheduleHide",value:function(e,t,o,n){var i=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&i._tooltipNode.ownerDocument.body.contains(i._tooltipNode)){if("mouseleave"===n.type&&i._setTooltipNodeEvent(n,e,t,o))return;i._hide(e,o)}},r)}}])&&u(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,o}();function Ue(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function xe(e){for(var t=1;t',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Fe(e){var t={placement:void 0!==e.placement?e.placement:Be.options.defaultPlacement,delay:void 0!==e.delay?e.delay:Be.options.defaultDelay,html:void 0!==e.html?e.html:Be.options.defaultHtml,template:void 0!==e.template?e.template:Be.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:Be.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:Be.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:Be.options.defaultTrigger,offset:void 0!==e.offset?e.offset:Be.options.defaultOffset,container:void 0!==e.container?e.container:Be.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:Be.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:Be.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:Be.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:Be.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:Be.options.defaultLoadingContent,popperOptions:xe({},void 0!==e.popperOptions?e.popperOptions:Be.options.defaultPopperOptions)};if(t.offset){var o=s(t.offset),n=t.offset;("number"===o||"string"===o&&-1===n.indexOf(","))&&(n="0, ".concat(n)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:n}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function Re(e,t){for(var o=e.placement,n=0;n2&&void 0!==arguments[2]?arguments[2]:{},n=Me(t),i=void 0!==t.classes?t.classes:Be.options.defaultClass,r=xe({title:n},Fe(xe(xe({},"object"===s(t)?t:{}),{},{placement:Re(t,o)}))),a=e._tooltip=new ke(e,r);a.setClasses(i),a._vueEl=e;var c=void 0!==t.targetClasses?t.targetClasses:Be.options.defaultTargetClass;return e._tooltipTargetClasses=c,Ee(e,c),a}(e,o,i),void 0!==o.show&&o.show!==e._tooltipOldShow&&(e._tooltipOldShow=o.show,o.show?n.show():n.hide())):He(e)}var Be={options:De,bind:Ge,update:Ge,unbind:function(e){He(e)}};function qe(e){e.addEventListener("click",Ve),e.addEventListener("touchstart",We,!!Le&&{passive:!0})}function ze(e){e.removeEventListener("click",Ve),e.removeEventListener("touchstart",We),e.removeEventListener("touchend",Ke),e.removeEventListener("touchcancel",Ye)}function Ve(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function We(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var o=e.changedTouches[0];t.$_vclosepopover_touchPoint=o,t.addEventListener("touchend",Ke),t.addEventListener("touchcancel",Ye)}}function Ke(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var o=e.changedTouches[0],n=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(o.screenY-n.screenY)<20&&Math.abs(o.screenX-n.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Ye(e){e.currentTarget.$_vclosepopover_touch=!1}var Je={bind:function(e,t){var o=t.value,n=t.modifiers;e.$_closePopoverModifiers=n,(void 0===o||o)&&qe(e)},update:function(e,t){var o=t.value,n=t.oldValue,i=t.modifiers;e.$_closePopoverModifiers=i,o!==n&&(void 0===o||o?qe(e):ze(e))},unbind:function(e){ze(e)}};function Qe(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function Xe(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},o=t.event;t.skipDelay;var n=t.force;!(void 0!==n&&n)&&this.disabled||(this.$_scheduleShow(o),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,o=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var n=this.$_findContainer(this.container,t);if(!n)return void console.warn("No container for popover",this);n.appendChild(o),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var i=Xe(Xe({},this.popperOptions),{},{placement:this.placement});if(i.modifiers=Xe(Xe({},i.modifiers),{},{arrow:Xe(Xe({},i.modifiers&&i.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();i.modifiers.offset=Xe(Xe({},i.modifiers&&i.modifiers.offset),{},{offset:r})}this.boundariesElement&&(i.modifiers.preventOverflow=Xe(Xe({},i.modifiers&&i.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new ue(t,o,i),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,c=0;c1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),o)this.$_hide();else{var n=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},n)}},$_setTooltipNodeEvent:function(e){var t=this,o=this.$refs.trigger,n=this.$refs.popover,i=e.relatedreference||e.toElement||e.relatedTarget;return!!n.contains(i)&&(n.addEventListener(e.type,function i(r){var s=r.relatedreference||r.toElement||r.relatedTarget;n.removeEventListener(e.type,i),o.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var o=t.func,n=t.event;e.removeEventListener(n,o)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),o&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function it(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=function(o){var n=tt[o];if(n.$refs.popover){var i=n.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&i||n.autoHide&&!i)&&n.$_handleGlobalClose(e,t)})}},n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var n={};we()(n,De,o),ut.options=n,Be.options=n,t.directive("tooltip",Be),t.directive("close-popover",Je),t.component("VPopover",ct)}},get enabled(){return Ne.enabled},set enabled(e){Ne.enabled=e}},dt=null;"undefined"!=typeof window?dt=window.Vue:"undefined"!=typeof globalThis&&(dt=globalThis.Vue),dt&&dt.use(ut);const pt=ut;var lt=o(85471),ft=o(95353),ht=o(58723),mt=o(22378);const vt=(0,lt.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:mt.A})}),gt=(0,o(14486).A)(vt,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var bt=o(63814),yt=o(40173);const _t=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,47643)),navigation:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,21299))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,o(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,6572)),navigation:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31267)),sidebar:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31278))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];lt.Ay.use(yt.Ay);const wt=new yt.Ay({mode:"history",base:(0,bt.Jv)(""),linkActiveClass:"active",routes:_t});var At=o(36347);o.nc=(0,n.aV)(),lt.Ay.prototype.t=i.t,lt.Ay.prototype.n=i.n,lt.Ay.use(r.R2),lt.Ay.use(pt,{defaultHtml:!1}),lt.Ay.use(ft.Ay);const Ot=(0,At.P)();(0,ht.O)(Ot,wt);const Et=(0,r.Ey)();Ot.dispatch("migrateLocalStorage"),new lt.Ay({router:wt,store:Ot,pinia:Et,render:e=>e(gt),el:"#content"})},87805(e,t,o){var n=o(43360),i=o(75288);e.exports=function(e,t,o){(void 0!==o&&!i(e[t],o)||void 0===o&&!(t in e))&&n(e,t,o)}},85250(e,t,o){var n=o(37217),i=o(87805),r=o(86649),s=o(42824),a=o(23805),c=o(37241),u=o(14974);e.exports=function e(t,o,d,p,l){t!==o&&r(o,function(r,c){if(l||(l=new n),a(r))s(t,o,c,d,e,p,l);else{var f=p?p(u(t,c),r,c+"",t,o,l):void 0;void 0===f&&(f=r),i(t,c,f)}},c)}},42824(e,t,o){var n=o(87805),i=o(93290),r=o(71961),s=o(23007),a=o(35529),c=o(72428),u=o(56449),d=o(83693),p=o(3656),l=o(1882),f=o(23805),h=o(11331),m=o(37167),v=o(14974),g=o(69884);e.exports=function(e,t,o,b,y,_,w){var A=v(e,o),O=v(t,o),E=w.get(O);if(E)n(e,o,E);else{var C=_?_(A,O,o+"",e,t,w):void 0,L=void 0===C;if(L){var T=u(O),I=!T&&p(O),P=!T&&!I&&m(O);C=O,T||I||P?u(A)?C=A:d(A)?C=s(A):I?(L=!1,C=i(O,!0)):P?(L=!1,C=r(O,!0)):C=[]:h(O)||c(O)?(C=A,c(A)?C=g(A):f(A)&&!l(A)||(C=a(O))):L=!1}L&&(w.set(O,C),y(C,O,b,_,w),w.delete(O)),n(e,o,C)}}},20999(e,t,o){var n=o(69302),i=o(36800);e.exports=function(e){return n(function(t,o){var n=-1,r=o.length,s=r>1?o[r-1]:void 0,a=r>2?o[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&i(o[0],o[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++nk,il:()=>l});var n=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function i(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var o,n=(o=function(t){return t.original===e},t.filter(o)[0]);if(n)return n.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(o){r[o]=i(e[o],t)}),r}function r(e,t){Object.keys(e).forEach(function(o){return t(e[o],o)})}function s(e){return null!==e&&"object"==typeof e}var a=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var o=e.state;this.state=("function"==typeof o?o():o)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(e,t){this._children[e]=t},a.prototype.removeChild=function(e){delete this._children[e]},a.prototype.getChild=function(e){return this._children[e]},a.prototype.hasChild=function(e){return e in this._children},a.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},a.prototype.forEachChild=function(e){r(this._children,e)},a.prototype.forEachGetter=function(e){this._rawModule.getters&&r(this._rawModule.getters,e)},a.prototype.forEachAction=function(e){this._rawModule.actions&&r(this._rawModule.actions,e)},a.prototype.forEachMutation=function(e){this._rawModule.mutations&&r(this._rawModule.mutations,e)},Object.defineProperties(a.prototype,c);var u,d=function(e){this.register([],e,!1)};function p(e,t,o){if(t.update(o),o.modules)for(var n in o.modules){if(!t.getChild(n))return;p(e.concat(n),t.getChild(n),o.modules[n])}}d.prototype.get=function(e){return e.reduce(function(e,t){return e.getChild(t)},this.root)},d.prototype.getNamespace=function(e){var t=this.root;return e.reduce(function(e,o){return e+((t=t.getChild(o)).namespaced?o+"/":"")},"")},d.prototype.update=function(e){p([],this.root,e)},d.prototype.register=function(e,t,o){var n=this;void 0===o&&(o=!0);var i=new a(t,o);0===e.length?this.root=i:this.get(e.slice(0,-1)).addChild(e[e.length-1],i),t.modules&&r(t.modules,function(t,i){n.register(e.concat(i),t,o)})},d.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1],n=t.getChild(o);n&&n.runtime&&t.removeChild(o)},d.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1];return!!t&&t.hasChild(o)};var l=function(e){var t=this;void 0===e&&(e={}),!u&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var i=e.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var r=this,s=this.dispatch,a=this.commit;this.dispatch=function(e,t){return s.call(r,e,t)},this.commit=function(e,t,o){return a.call(r,e,t,o)},this.strict=i;var c=this._modules.root.state;g(this,c,[],this._modules.root),v(this,c),o.forEach(function(e){return e(t)}),(void 0!==e.devtools?e.devtools:u.config.devtools)&&function(e){n&&(e._devtoolHook=n,n.emit("vuex:init",e),n.on("vuex:travel-to-state",function(t){e.replaceState(t)}),e.subscribe(function(e,t){n.emit("vuex:mutation",e,t)},{prepend:!0}),e.subscribeAction(function(e,t){n.emit("vuex:action",e,t)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function h(e,t,o){return t.indexOf(e)<0&&(o&&o.prepend?t.unshift(e):t.push(e)),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}function m(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var o=e.state;g(e,o,[],e._modules.root,!0),v(e,o,t)}function v(e,t,o){var n=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var i=e._wrappedGetters,s={};r(i,function(t,o){s[o]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,o,{get:function(){return e._vm[o]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,e._vm=new u({data:{$$state:t},computed:s}),u.config.silent=a,e.strict&&function(e){e._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(e),n&&(o&&e._withCommit(function(){n._data.$$state=null}),u.nextTick(function(){return n.$destroy()}))}function g(e,t,o,n,i){var r=!o.length,s=e._modules.getNamespace(o);if(n.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=n),!r&&!i){var a=b(t,o.slice(0,-1)),c=o[o.length-1];e._withCommit(function(){u.set(a,c,n.state)})}var d=n.context=function(e,t,o){var n=""===t,i={dispatch:n?e.dispatch:function(o,n,i){var r=y(o,n,i),s=r.payload,a=r.options,c=r.type;return a&&a.root||(c=t+c),e.dispatch(c,s)},commit:n?e.commit:function(o,n,i){var r=y(o,n,i),s=r.payload,a=r.options,c=r.type;a&&a.root||(c=t+c),e.commit(c,s,a)}};return Object.defineProperties(i,{getters:{get:n?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var o={},n=t.length;Object.keys(e.getters).forEach(function(i){if(i.slice(0,n)===t){var r=i.slice(n);Object.defineProperty(o,r,{get:function(){return e.getters[i]},enumerable:!0})}}),e._makeLocalGettersCache[t]=o}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return b(e.state,o)}}}),i}(e,s,o);n.forEachMutation(function(t,o){!function(e,t,o,n){(e._mutations[t]||(e._mutations[t]=[])).push(function(t){o.call(e,n.state,t)})}(e,s+o,t,d)}),n.forEachAction(function(t,o){var n=t.root?o:s+o,i=t.handler||t;!function(e,t,o,n){(e._actions[t]||(e._actions[t]=[])).push(function(t){var i,r=o.call(e,{dispatch:n.dispatch,commit:n.commit,getters:n.getters,state:n.state,rootGetters:e.getters,rootState:e.state},t);return(i=r)&&"function"==typeof i.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch(function(t){throw e._devtoolHook.emit("vuex:error",t),t}):r})}(e,n,i,d)}),n.forEachGetter(function(t,o){!function(e,t,o,n){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return o(n.state,n.getters,e.state,e.getters)})}(e,s+o,t,d)}),n.forEachChild(function(n,r){g(e,t,o.concat(r),n,i)})}function b(e,t){return t.reduce(function(e,t){return e[t]},e)}function y(e,t,o){return s(e)&&e.type&&(o=t,t=e,e=e.type),{type:e,payload:t,options:o}}function _(e){u&&e===u||function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:o});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[o].concat(e.init):o,t.call(this,e)}}function o(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(u=e)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(e){},l.prototype.commit=function(e,t,o){var n=this,i=y(e,t,o),r=i.type,s=i.payload,a=(i.options,{type:r,payload:s}),c=this._mutations[r];c&&(this._withCommit(function(){c.forEach(function(e){e(s)})}),this._subscribers.slice().forEach(function(e){return e(a,n.state)}))},l.prototype.dispatch=function(e,t){var o=this,n=y(e,t),i=n.type,r=n.payload,s={type:i,payload:r},a=this._actions[i];if(a){try{this._actionSubscribers.slice().filter(function(e){return e.before}).forEach(function(e){return e.before(s,o.state)})}catch(e){}var c=a.length>1?Promise.all(a.map(function(e){return e(r)})):a[0](r);return new Promise(function(e,t){c.then(function(t){try{o._actionSubscribers.filter(function(e){return e.after}).forEach(function(e){return e.after(s,o.state)})}catch(e){}e(t)},function(e){try{o._actionSubscribers.filter(function(e){return e.error}).forEach(function(t){return t.error(s,o.state,e)})}catch(e){}t(e)})})}},l.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},l.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},l.prototype.watch=function(e,t,o){var n=this;return this._watcherVM.$watch(function(){return e(n.state,n.getters)},t,o)},l.prototype.replaceState=function(e){var t=this;this._withCommit(function(){t._vm._data.$$state=e})},l.prototype.registerModule=function(e,t,o){void 0===o&&(o={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),g(this,this.state,e,this._modules.get(e),o.preserveState),v(this,this.state)},l.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var o=b(t.state,e.slice(0,-1));u.delete(o,e[e.length-1])}),m(this)},l.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},l.prototype.hotUpdate=function(e){this._modules.update(e),m(this,!0)},l.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(l.prototype,f);var w=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;o[n]=function(){var t=this.$store.state,o=this.$store.getters;if(e){var n=T(this.$store,0,e);if(!n)return;t=n.context.state,o=n.context.getters}return"function"==typeof i?i.call(this,t,o):t[i]},o[n].vuex=!0}),o}),A=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;o[n]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var n=this.$store.commit;if(e){var r=T(this.$store,0,e);if(!r)return;n=r.context.commit}return"function"==typeof i?i.apply(this,[n].concat(t)):n.apply(this.$store,[i].concat(t))}}),o}),O=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;i=e+i,o[n]=function(){if(!e||T(this.$store,0,e))return this.$store.getters[i]},o[n].vuex=!0}),o}),E=L(function(e,t){var o={};return C(t).forEach(function(t){var n=t.key,i=t.val;o[n]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var n=this.$store.dispatch;if(e){var r=T(this.$store,0,e);if(!r)return;n=r.context.dispatch}return"function"==typeof i?i.apply(this,[n].concat(t)):n.apply(this.$store,[i].concat(t))}}),o});function C(e){return function(e){return Array.isArray(e)||s(e)}(e)?Array.isArray(e)?e.map(function(e){return{key:e,val:e}}):Object.keys(e).map(function(t){return{key:t,val:e[t]}}):[]}function L(e){return function(t,o){return"string"!=typeof t?(o=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,o)}}function T(e,t,o){return e._modulesNamespaceMap[o]}function I(e,t,o){var n=o?e.groupCollapsed:e.group;try{n.call(e,t)}catch(o){e.log(t)}}function P(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function $(){var e=new Date;return" @ "+S(e.getHours(),2)+":"+S(e.getMinutes(),2)+":"+S(e.getSeconds(),2)+"."+S(e.getMilliseconds(),3)}function S(e,t){return o=t-e.toString().length,new Array(o+1).join("0")+e;var o}const k={Store:l,install:_,version:"3.6.2",mapState:w,mapMutations:A,mapGetters:O,mapActions:E,createNamespacedHelpers:function(e){return{mapState:w.bind(null,e),mapGetters:O.bind(null,e),mapMutations:A.bind(null,e),mapActions:E.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var o=e.filter;void 0===o&&(o=function(e,t,o){return!0});var n=e.transformer;void 0===n&&(n=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var c=e.logMutations;void 0===c&&(c=!0);var u=e.logActions;void 0===u&&(u=!0);var d=e.logger;return void 0===d&&(d=console),function(e){var p=i(e.state);void 0!==d&&(c&&e.subscribe(function(e,s){var a=i(s);if(o(e,p,a)){var c=$(),u=r(e),l="mutation "+e.type+c;I(d,l,t),d.log("%c prev state","color: #9E9E9E; font-weight: bold",n(p)),d.log("%c mutation","color: #03A9F4; font-weight: bold",u),d.log("%c next state","color: #4CAF50; font-weight: bold",n(a)),P(d)}p=a}),u&&e.subscribeAction(function(e,o){if(s(e,o)){var n=$(),i=a(e),r="action "+e.type+n;I(d,r,t),d.log("%c action","color: #03A9F4; font-weight: bold",i),P(d)}}))}}}}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return i[e].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=i,e=[],s.O=(t,o,n,i)=>{if(!o){var r=1/0;for(d=0;d=i)&&Object.keys(s.O).every(e=>s.O[e](o[c]))?o.splice(c--,1):(a=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[o,n,i]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,o)=>(s.f[o](e,t),t),[])),s.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3079:"e25e60ee1af8efb023fb",3239:"b0c2ede323cd636843b0",4529:"4e522ae06adb0b86d3f2",5448:"71cfe268d6f1213c4735",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",6197:"a372e411091ea8313019",6798:"1a6cf42d93801a926a3d",7471:"b4ac70873a3ab192efd0",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4",9646:"1f59e43b850fe6bc2360"}[e]),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},n="nextcloud-ui-legacy:",s.l=(e,t,i,r)=>{if(o[e])o[e].push(t);else{var a,c;if(void 0!==i)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var i=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(e=>e(n)),t)return t(n)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2689,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var n=o.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=o[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};s.f.j=(t,o)=>{var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else{var i=new Promise((o,i)=>n=e[t]=[o,i]);o.push(n[2]=i);var r=s.p+s.u(t),a=new Error;s.l(r,o=>{if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",a.name="ChunkLoadError",a.type=i,a.request=r,n[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[r,a,c]=o,u=0;if(r.some(t=>0!==e[t])){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);if(c)var d=c(s)}for(t&&t(o);us(35750));a=s.O(a)})();
+//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=7284ede5417f474bd678
\ No newline at end of file
diff --git a/dist/settings-vue-settings-apps-users-management.js.map b/dist/settings-vue-settings-apps-users-management.js.map
index e30eee142a67e..0c126e21917bf 100644
--- a/dist/settings-vue-settings-apps-users-management.js.map
+++ b/dist/settings-vue-settings-apps-users-management.js.map
@@ -1 +1 @@
-{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=714704fb94518b81e1d0","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/SettingsApp.vue?3a67","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/main-apps-users-management.ts","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data) {\n\t\treturn axios.post(sanitize(url), data)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport logger from '../logger.ts'\nimport api from './api.js'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('settings', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('settings', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n\tappApiEnabled: loadState('settings', 'appApiEnabled', false),\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + ' ' + error.error.response.data.data.message, { isHTML: true })\n\t\tlogger.error('An error occurred during the request. Unable to proceed.', { state, error })\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find((app) => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = true\n\t\tVue.set(app, 'groups', [...groups])\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = true\n\t\t}\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find((app) => app.id === appId).active = false\n\t\tstate.apps.find((app) => app.id === appId).groups = []\n\t\tstate.apps.find((app) => app.id === appId).needsDownload = true\n\t\tstate.apps.find((app) => app.id === appId).installed = false\n\t\tstate.apps.find((app) => app.id === appId).canUnInstall = false\n\t\tstate.apps.find((app) => app.id === appId).canInstall = true\n\t\tif (appId === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tisAppApiEnabled(state) {\n\t\treturn state.appApiEnabled\n\t},\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\n\t\t\tconst previousState = {}\n\t\t\tapps.forEach((_appId) => {\n\t\t\t\tconst app = context.state.apps.find((app) => app.id === _appId)\n\t\t\t\tif (app) {\n\t\t\t\t\tpreviousState[_appId] = {\n\t\t\t\t\t\tactive: app.active,\n\t\t\t\t\t\tgroups: [...(app.groups || [])],\n\t\t\t\t\t}\n\t\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t\t// check for server health\n\t\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t\t'settings',\n\t\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\t\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\tif (previousState[_appId]) {\n\t\t\t\t\t\t\tcontext.commit('enableApp', {\n\t\t\t\t\t\t\t\tappId: _appId,\n\t\t\t\t\t\t\t\tgroups: previousState[_appId].groups,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif (!previousState[_appId].active) {\n\t\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tforceEnableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport api from './api.js'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nexport const naturalCollator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { parseFileSize } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport logger from '../logger.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst defaults = {\n\t/**\n\t * @type {import('../views/user-types').IGroup}\n\t */\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [\n\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t...(usersSettings.systemGroups ?? []),\n\t],\n\torderBy: usersSettings.sortGroups ?? GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: usersSettings.showConfig?.user_list_show_storage_path,\n\t\tshowUserBackend: usersSettings.showConfig?.user_list_show_user_backend,\n\t\tshowFirstLogin: usersSettings.showConfig?.user_list_show_first_login,\n\t\tshowLastLogin: usersSettings.showConfig?.user_list_show_last_login,\n\t\tshowNewUserForm: usersSettings.showConfig?.user_list_show_new_user_form,\n\t\tshowLanguages: usersSettings.showConfig?.user_list_show_languages,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\t/**\n\t * @param {object} state store state\n\t * @param {import('../views/user-types.js').IGroup} newGroup new group\n\t */\n\taddGroup(state, newGroup) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === newGroup.id) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = { ...defaults.group, ...newGroup }\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (error) {\n\t\t\tlogger.error('Cannt create group', { error })\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex((user) => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find((group) => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find((group) => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\t\tcase 'enable':\n\t\t\tcase 'disable':\n\t\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'create':\n\t\t\t\trecentGroup.usercount++\n\t\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'remove':\n\t\t\t\tif (user.enabled) {\n\t\t\t\t\trecentGroup.usercount--\n\t\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\tlogger.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find((user) => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find((user) => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\t/**\n\t * Reset group list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetGroups(state) {\n\t\tstate.groups = [\n\t\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t\t...(usersSettings.systemGroups ?? []),\n\t\t]\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSubAdminGroups() {\n\t\treturn usersSettings.subAdminGroups ?? []\n\t},\n\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : naturalCollator.compare(a.name, b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => naturalCollator.compare(a.name, b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\t/**\n\t\t * Adding filters in the search bar such as in:files, in:users, etc.\n\t\t * collides with this particular search, so we need to remove them\n\t\t * here and leave only the original search query\n\t\t */\n\t\tsearch = search.replace(/in:[^\\s]+/g, '').trim()\n\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { id: group, name: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('addGroup', { id: gid, name: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then(() => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then(() => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then(() => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tconst validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']\n\n\t\tif (!validKeys.includes(key)) {\n\t\t\tthrow new Error('Invalid request data')\n\t\t}\n\n\t\t// If value is empty and the key doesn't allow empty values, throw error\n\t\tif (value === '' && !allowedEmpty.includes(key)) {\n\t\t\tthrow new Error('Value cannot be empty for this field')\n\t\t}\n\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(() => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\t/**\n\t * Migrate local storage keys to database\n\t *\n\t * @param {object} context store context\n\t * @param context.commit\n\t */\n\tmigrateLocalStorage({ commit }) {\n\t\tconst preferences = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\n\t\tfor (const [key, dbKey] of Object.entries(preferences)) {\n\t\t\tconst localKey = `account_settings__${key}`\n\t\t\tconst localValue = window.localStorage.getItem(localKey)\n\t\t\tif (localValue === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst value = localValue === 'true'\n\t\t\tcommit('setShowConfig', { key, value })\n\n\t\t\taxios.post(generateUrl(`/settings/users/preferences/${dbKey}`), {\n\t\t\t\tvalue: value ? 'true' : 'false',\n\t\t\t}).then(() => {\n\t\t\t\twindow.localStorage.removeItem(localKey)\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error(`Failed to migrate preference ${key}`, { error })\n\t\t\t})\n\t\t}\n\t},\n\n\t/**\n\t * Set show config\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.key Key to set\n\t * @param {boolean} options.value Value to set\n\t */\n\tsetShowConfig(context, { key, value }) {\n\t\tcontext.commit('setShowConfig', { key, value })\n\t\tconst keyMap = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\t\taxios.post(generateUrl(`settings/users/preferences/${keyMap[key]}`), { value: value ? 'true' : 'false' })\n\t\t\t.catch((error) => logger.error(`Could not update ${key} preference`, { error }))\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tgetters,\n\tactions,\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../logger.js'\nimport apps from './apps.js'\nimport oc from './oc.js'\nimport settings from './users-settings.js'\nimport users from './users.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + ' ' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tapps,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style. \n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one. \n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option. \n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right. \n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property. \n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers. \n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element. \n * It will read the variation of the `placement` property. \n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper. \n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces. \n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2. \n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries. \n * We can say it has \"escaped the boundaries\" — or just \"escaped\". \n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor. \n * These can be overridden using the `options` argument of Popper.js. \n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created. \n * By default, it is set to no-op. \n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates. \n * By default, it is set to no-op. \n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node. \n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./SettingsApp.vue?vue&type=template&id=288003b1\"\nimport script from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst UserManagement = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagement.vue');\nconst UserManagementNavigation = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagementNavigation.vue');\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n components: {\n default: UserManagement,\n navigation: UserManagementNavigation,\n },\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { n, t } from '@nextcloud/l10n';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\n// Migrate legacy local storage settings to the database\nstore.dispatch('migrateLocalStorage');\nexport default new Vue({\n router,\n store,\n pinia,\n render: (h) => h(SettingsApp),\n el: '#content',\n});\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array