{"version":3,"sources":["webpack:///pages.explore.groups.4a7f530e043f3cfebe23.bundle.js","webpack:///groups/components/app.vue","webpack:///./filterable_list.js","webpack:///groups/components/groups.vue","webpack:///./groups/components/groups.vue?5736","webpack:///./groups/components/groups.vue","webpack:///./groups/constants.js","webpack:///./groups/event_hub.js","webpack:///./groups/groups_filterable_list.js","webpack:///./groups/store/groups_store.js","webpack:///./groups/service/groups_service.js","webpack:///./groups/components/app.vue?5df7","webpack:///./groups/components/app.vue","webpack:///groups/components/group_folder.vue","webpack:///./groups/components/group_folder.vue?6592","webpack:///./groups/components/group_folder.vue","webpack:///groups/components/item_caret.vue","webpack:///./groups/components/item_caret.vue?8e5c","webpack:///./groups/components/item_caret.vue","webpack:///groups/components/item_type_icon.vue","webpack:///./groups/components/item_type_icon.vue?83c9","webpack:///./groups/components/item_type_icon.vue","webpack:///groups/components/item_stats_value.vue","webpack:///./groups/components/item_stats_value.vue?0991","webpack:///./groups/components/item_stats_value.vue","webpack:///groups/components/item_stats.vue","webpack:///./groups/components/item_stats.vue?90ee","webpack:///./groups/components/item_stats.vue","webpack:///groups/components/item_actions.vue","webpack:///./groups/components/item_actions.vue?f88c","webpack:///./groups/components/item_actions.vue","webpack:///groups/components/group_item.vue","webpack:///./groups/components/group_item.vue?01a1","webpack:///./groups/components/group_item.vue","webpack:///./groups/index.js","webpack:///./groups_list.js","webpack:///./landing.js","webpack:///./pages/explore/groups/index.js","webpack:///vue_shared/components/icon.vue","webpack:///./vue_shared/components/icon.vue?1e66","webpack:///./vue_shared/components/icon.vue","webpack:///vue_shared/components/modal.vue","webpack:///./vue_shared/components/modal.vue?445c","webpack:///./vue_shared/components/modal.vue","webpack:///vue_shared/components/table_pagination.vue","webpack:///./vue_shared/components/table_pagination.vue?eca9","webpack:///./vue_shared/components/table_pagination.vue","webpack:///vue_shared/components/time_ago_tooltip.vue","webpack:///./vue_shared/components/time_ago_tooltip.vue?0580","webpack:///./vue_shared/components/time_ago_tooltip.vue","webpack:///./vue_shared/directives/tooltip.js","webpack:///./vue_shared/mixins/timeago.js"],"names":["webpackJsonp","../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/app.vue","module","__webpack_exports__","__webpack_require__","$","__WEBPACK_IMPORTED_MODULE_0__locale__","__WEBPACK_IMPORTED_MODULE_1__vue_shared_components_loading_icon_vue__","__WEBPACK_IMPORTED_MODULE_2__vue_shared_components_modal_vue__","__WEBPACK_IMPORTED_MODULE_3__lib_utils_common_utils__","__WEBPACK_IMPORTED_MODULE_4__lib_utils_url_utility__","__WEBPACK_IMPORTED_MODULE_5__event_hub__","__WEBPACK_IMPORTED_MODULE_6__constants__","__WEBPACK_IMPORTED_MODULE_7__groups_vue__","components","loadingIcon","modal","groupsComponent","props","store","type","Object","required","service","hideProjects","Boolean","data","isLoading","isSearchEmpty","searchEmptyMessage","showModal","groupLeaveConfirmationMessage","targetGroup","targetParentGroup","computed","groups","this","getGroups","pageInfo","getPaginationInfo","created","GROUP_SEARCH_EMPTY","GROUP_PROJECT_SEARCH_EMPTY","$on","fetchPage","toggleChildren","showLeaveGroupModal","updatePagination","updateGroups","mounted","fetchAllGroups","beforeDestroy","$off","methods","fetchGroups","_ref","_this","parentId","page","filterGroupsBy","sortBy","archived","then","res","headers","json","catch","scrollTo","Flash","FAILURE","_this2","_this3","currentPath","window","location","href","history","replaceState","document","title","group","_this4","parentGroup","isOpen","children","length","isChildrenLoading","id","setGroupChildren","fullName","hideLeaveGroupModal","leaveGroup","_this5","isBeingRemoved","leavePath","removeGroup","notice","err","message","status","LEAVE_FORBIDDEN","setPaginationInfo","fromSearch","setSearchedGroups","setGroups","call","./filterable_list.js","_classCallCheck","instance","Constructor","TypeError","__WEBPACK_IMPORTED_MODULE_0_underscore__","__WEBPACK_IMPORTED_MODULE_0_underscore___default","n","__WEBPACK_IMPORTED_MODULE_1__lib_utils_axios_utils__","_createClass","defineProperties","target","i","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","prototype","FilterableList","form","filter","holder","filterInputField","arguments","undefined","filterForm","listFilterElement","listHolderElement","isBusy","value","getAttribute","serialize","getFilterEndpoint","debounceFilter","a","debounce","onFilterInput","bind","unbindEvents","bindEvents","$form","queryData","filterGroupsParam","find","val","filterResults","setDefaultFilterOption","addEventListener","removeEventListener","params","fadeTo","get","onFilterSuccess","onFilterComplete","response","html","innerHTML","getPagePath","./groups/components/groups.vue","table_pagination","event_hub","common_utils","tablePagination","Array","searchEmpty","String","change","sortParam","archivedParam","$emit","render","_vm","_h","$createElement","_c","_self","staticClass","_v","_s","_e","attrs","page-info","staticRenderFns","component_normalizer","Component","./groups/constants.js","d","MAX_CHILDREN_COUNT","COMMON_STR","ITEM_TYPE","GROUP_VISIBILITY_TYPE","PROJECT_VISIBILITY_TYPE","VISIBILITY_TYPE_ICON","LEAVE_BTN_TITLE","EDIT_BTN_TITLE","PROJECT","GROUP","public","internal","private","./groups/event_hub.js","__WEBPACK_IMPORTED_MODULE_0_vue__","./groups/groups_filterable_list.js","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","__WEBPACK_IMPORTED_MODULE_0__filterable_list__","__WEBPACK_IMPORTED_MODULE_1__event_hub__","__WEBPACK_IMPORTED_MODULE_2__lib_utils_common_utils__","_get","object","property","receiver","Function","desc","getOwnPropertyDescriptor","parent","getPrototypeOf","getter","GroupFilterableList","_FilterableList","filterEndpoint","pagePath","dropdownSel","$dropdown","param","queryString","onFilterOptionClikWrapper","onOptionClick","on","defaultOption","trim","first","text","e","preventDefault","currentTargetClassList","currentTarget","parentElement","classList","isOptionFilterBySort","contains","isOptionFilterByArchivedProjects","sort","removeClass","addClass","querySelector","hasOwnProperty","./groups/index.js","groups_service__classCallCheck","vue_esm","translate","groups_filterable_list","groups_store_GroupsStore","GroupsStore","state","rawGroups","map","rawGroup","formatGroupItem","formatGroups","formattedGroup","updatedParentGroup","rawChild","pagination","paginationInfo","keys","normalizedHeaders","rawGroupItem","groupChildren","groupIsOpen","childrenCount","subgroup_count","children_count","name","full_name","description","markdown_description","visibility","avatarUrl","avatar_url","relativePath","relative_path","editPath","edit_path","leave_path","canEdit","can_edit","canLeave","can_leave","permission","parent_id","projectCount","project_count","subgroupCount","memberCount","number_users_with_delimiter","starCount","star_count","updatedAt","updated_at","child","groups_store","groups_service__createClass","groups_service_GroupsService","GroupsService","endpoint","resource","filterGroups","http","delete","groups_service","app","size","label","s__","search-empty","search-empty-message","kind","primary-button-label","__","cancel","submit","components_app","locale","constants","group_folder","default","hasMoreChildren","moreChildrenStats","group_folder_render","_l","index","parent-group","aria-hidden","group_folder_staticRenderFns","group_folder_Component","components_group_folder","url_utility","tooltip","identicon","icon","item_caret","isGroupOpen","iconClass","item_caret_render","item_caret_staticRenderFns","item_caret_Component","components_item_caret","item_type_icon","itemType","item_type_icon_render","item_type_icon_staticRenderFns","item_type_icon_Component","components_item_type_icon","time_ago_tooltip","item_stats_value","directives","cssClass","iconName","tooltipPlacement","Number","isValuePresent","item_stats_value_render","rawName","class","data-container","data-placement","item_stats_value_staticRenderFns","item_stats_value_Component","components_item_stats_value","item_stats","timeAgoTooltip","itemStatsValue","item","visibilityIcon","visibilityTooltip","isProject","isGroup","item_stats_render","css-class","icon-name","tooltip-placement","time","item_stats_staticRenderFns","item_stats_Component","components_item_stats","item_actions","leaveBtnTitle","editBtnTitle","onLeaveGroup","item_actions_render","aria-label","click","$event","item_actions_staticRenderFns","item_actions_Component","components_item_actions","group_item","itemCaret","itemTypeIcon","itemStats","itemActions","groupDomId","rowClass","is-open","has-children","hasChildren","has-description","being-removed","hasAvatar","onClickRowGroup","group_item_render","stopPropagation","project-row-contents","is-group-open","item-type","content-loading","src","size-class","entity-id","entity-name","domProps","group_item_staticRenderFns","group_item_Component","components_group_item","use","el","getElementById","component","groupsApp","dataset","$options","loading","beforeMount","groupFilterList","formSel","filterSel","holderSel","opts","path","initSearch","createElement","./pages/explore/groups/index.js","landing__classCallCheck","filterable_list","groups_list_GroupsList","GroupsList","groups_list","js_cookie","js_cookie_default","landing_Landing","Landing","landingElement","dismissButton","cookieName","eventWrapper","isDismissed","toggle","addEvents","dismissLanding","add","set","expires","landing","./vue_shared/components/icon.vue","validSizes","validator","includes","cssClasses","width","height","y","x","spriteHref","gon","sprite_icons","iconSizeClass","_b","xlink:href","./vue_shared/components/modal.vue","_defineProperty","obj","hideFooter","modalDialogClass","closeKind","closeButtonLabel","primaryButtonLabel","secondaryButtonLabel","submitDisabled","btnKindClass","btnCancelKindClass","emitCancel","event","emitSubmit","role","tabindex","_t","data-dismiss","disabled","./vue_shared/components/table_pagination.vue","PREV","NEXT","FIRST","LAST","prev","previousPage","next","nextPage","getItems","total","totalPages","items","push","separator","start","Math","max","end","min","isActive","active","last","showPagination","changePage","isDisabled","_pageInfo","js-previous-button","js-next-button","js-last-button","js-first-button","./vue_shared/components/time_ago_tooltip.vue","timeago","mixins","tooltipTitle","timeFormated","./vue_shared/directives/tooltip.js","componentUpdated","unbind","./vue_shared/mixins/timeago.js","__WEBPACK_IMPORTED_MODULE_0__lib_utils_datetime_utility__","format"],"mappings":"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","file":"pages.explore.groups.4a7f530e043f3cfebe23.bundle.js","sourcesContent":["webpackJsonp([\"pages.explore.groups\"],{\n\n/***/ \"../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/app.vue\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(\"./locale/index.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__vue_shared_components_loading_icon_vue__ = __webpack_require__(\"./vue_shared/components/loading_icon.vue\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__vue_shared_components_modal_vue__ = __webpack_require__(\"./vue_shared/components/modal.vue\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__lib_utils_common_utils__ = __webpack_require__(\"./lib/utils/common_utils.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__lib_utils_url_utility__ = __webpack_require__(\"./lib/utils/url_utility.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__event_hub__ = __webpack_require__(\"./groups/event_hub.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__constants__ = __webpack_require__(\"./groups/constants.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__groups_vue__ = __webpack_require__(\"./groups/components/groups.vue\");\n\n/* global Flash */\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n loadingIcon: __WEBPACK_IMPORTED_MODULE_1__vue_shared_components_loading_icon_vue__[\"a\" /* default */],\n modal: __WEBPACK_IMPORTED_MODULE_2__vue_shared_components_modal_vue__[\"a\" /* default */],\n groupsComponent: __WEBPACK_IMPORTED_MODULE_7__groups_vue__[\"a\" /* default */]\n },\n props: {\n store: {\n type: Object,\n required: true\n },\n service: {\n type: Object,\n required: true\n },\n hideProjects: {\n type: Boolean,\n required: true\n }\n },\n data: function data() {\n return {\n isLoading: true,\n isSearchEmpty: false,\n searchEmptyMessage: '',\n showModal: false,\n groupLeaveConfirmationMessage: '',\n targetGroup: null,\n targetParentGroup: null\n };\n },\n\n computed: {\n groups: function groups() {\n return this.store.getGroups();\n },\n pageInfo: function pageInfo() {\n return this.store.getPaginationInfo();\n }\n },\n created: function created() {\n this.searchEmptyMessage = this.hideProjects ? __WEBPACK_IMPORTED_MODULE_6__constants__[\"a\" /* COMMON_STR */].GROUP_SEARCH_EMPTY : __WEBPACK_IMPORTED_MODULE_6__constants__[\"a\" /* COMMON_STR */].GROUP_PROJECT_SEARCH_EMPTY;\n\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$on('fetchPage', this.fetchPage);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$on('toggleChildren', this.toggleChildren);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$on('showLeaveGroupModal', this.showLeaveGroupModal);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$on('updatePagination', this.updatePagination);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$on('updateGroups', this.updateGroups);\n },\n mounted: function mounted() {\n this.fetchAllGroups();\n },\n beforeDestroy: function beforeDestroy() {\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$off('fetchPage', this.fetchPage);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$off('toggleChildren', this.toggleChildren);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$off('showLeaveGroupModal', this.showLeaveGroupModal);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$off('updatePagination', this.updatePagination);\n __WEBPACK_IMPORTED_MODULE_5__event_hub__[\"a\" /* default */].$off('updateGroups', this.updateGroups);\n },\n\n methods: {\n fetchGroups: function fetchGroups(_ref) {\n var _this = this;\n\n var parentId = _ref.parentId,\n page = _ref.page,\n filterGroupsBy = _ref.filterGroupsBy,\n sortBy = _ref.sortBy,\n archived = _ref.archived,\n updatePagination = _ref.updatePagination;\n\n return this.service.getGroups(parentId, page, filterGroupsBy, sortBy, archived).then(function (res) {\n if (updatePagination) {\n _this.updatePagination(res.headers);\n }\n\n return res;\n }).then(function (res) {\n return res.json();\n }).catch(function () {\n _this.isLoading = false;\n $.scrollTo(0);\n\n Flash(__WEBPACK_IMPORTED_MODULE_6__constants__[\"a\" /* COMMON_STR */].FAILURE);\n });\n },\n fetchAllGroups: function fetchAllGroups() {\n var _this2 = this;\n\n var page = Object(__WEBPACK_IMPORTED_MODULE_3__lib_utils_common_utils__[\"i\" /* getParameterByName */])('page') || null;\n var sortBy = Object(__WEBPACK_IMPORTED_MODULE_3__lib_utils_common_utils__[\"i\" /* getParameterByName */])('sort') || null;\n var archived = Object(__WEBPACK_IMPORTED_MODULE_3__lib_utils_common_utils__[\"i\" /* getParameterByName */])('archived') || null;\n var filterGroupsBy = Object(__WEBPACK_IMPORTED_MODULE_3__lib_utils_common_utils__[\"i\" /* getParameterByName */])('filter') || null;\n\n this.isLoading = true;\n // eslint-disable-next-line promise/catch-or-return\n this.fetchGroups({\n page: page,\n filterGroupsBy: filterGroupsBy,\n sortBy: sortBy,\n archived: archived,\n updatePagination: true\n }).then(function (res) {\n _this2.isLoading = false;\n _this2.updateGroups(res, Boolean(filterGroupsBy));\n });\n },\n fetchPage: function fetchPage(page, filterGroupsBy, sortBy, archived) {\n var _this3 = this;\n\n this.isLoading = true;\n\n // eslint-disable-next-line promise/catch-or-return\n this.fetchGroups({\n page: page,\n filterGroupsBy: filterGroupsBy,\n sortBy: sortBy,\n archived: archived,\n updatePagination: true\n }).then(function (res) {\n _this3.isLoading = false;\n $.scrollTo(0);\n\n var currentPath = Object(__WEBPACK_IMPORTED_MODULE_4__lib_utils_url_utility__[\"c\" /* mergeUrlParams */])({ page: page }, window.location.href);\n window.history.replaceState({\n page: currentPath\n }, document.title, currentPath);\n\n _this3.updateGroups(res);\n });\n },\n toggleChildren: function toggleChildren(group) {\n var _this4 = this;\n\n var parentGroup = group;\n if (!parentGroup.isOpen) {\n if (parentGroup.children.length === 0) {\n parentGroup.isChildrenLoading = true;\n // eslint-disable-next-line promise/catch-or-return\n this.fetchGroups({\n parentId: parentGroup.id\n }).then(function (res) {\n _this4.store.setGroupChildren(parentGroup, res);\n }).catch(function () {\n parentGroup.isChildrenLoading = false;\n });\n } else {\n parentGroup.isOpen = true;\n }\n } else {\n parentGroup.isOpen = false;\n }\n },\n showLeaveGroupModal: function showLeaveGroupModal(group, parentGroup) {\n this.targetGroup = group;\n this.targetParentGroup = parentGroup;\n this.showModal = true;\n this.groupLeaveConfirmationMessage = Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"e\" /* s__ */])('GroupsTree|Are you sure you want to leave the \"' + group.fullName + '\" group?');\n },\n hideLeaveGroupModal: function hideLeaveGroupModal() {\n this.showModal = false;\n },\n leaveGroup: function leaveGroup() {\n var _this5 = this;\n\n this.showModal = false;\n this.targetGroup.isBeingRemoved = true;\n this.service.leaveGroup(this.targetGroup.leavePath).then(function (res) {\n return res.json();\n }).then(function (res) {\n $.scrollTo(0);\n _this5.store.removeGroup(_this5.targetGroup, _this5.targetParentGroup);\n Flash(res.notice, 'notice');\n }).catch(function (err) {\n var message = __WEBPACK_IMPORTED_MODULE_6__constants__[\"a\" /* COMMON_STR */].FAILURE;\n if (err.status === 403) {\n message = __WEBPACK_IMPORTED_MODULE_6__constants__[\"a\" /* COMMON_STR */].LEAVE_FORBIDDEN;\n }\n Flash(message);\n _this5.targetGroup.isBeingRemoved = false;\n });\n },\n updatePagination: function updatePagination(headers) {\n this.store.setPaginationInfo(headers);\n },\n updateGroups: function updateGroups(groups, fromSearch) {\n this.isSearchEmpty = groups ? groups.length === 0 : false;\n if (fromSearch) {\n this.store.setSearchedGroups(groups);\n } else {\n this.store.setGroups(groups);\n }\n }\n }\n});\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ }),\n\n/***/ \"./filterable_list.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_underscore__ = __webpack_require__(\"../../../node_modules/underscore/underscore.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_underscore___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_underscore__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__lib_utils_axios_utils__ = __webpack_require__(\"./lib/utils/axios_utils.js\");\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n/**\n * Makes search request for content when user types a value in the search input.\n * Updates the html content of the page with the received one.\n */\n\nvar FilterableList = function () {\n function FilterableList(form, filter, holder) {\n var filterInputField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'filter_groups';\n\n _classCallCheck(this, FilterableList);\n\n this.filterForm = form;\n this.listFilterElement = filter;\n this.listHolderElement = holder;\n this.filterInputField = filterInputField;\n this.isBusy = false;\n }\n\n _createClass(FilterableList, [{\n key: 'getFilterEndpoint',\n value: function getFilterEndpoint() {\n return this.filterForm.getAttribute('action') + '?' + $(this.filterForm).serialize();\n }\n }, {\n key: 'getPagePath',\n value: function getPagePath() {\n return this.getFilterEndpoint();\n }\n }, {\n key: 'initSearch',\n value: function initSearch() {\n // Wrap to prevent passing event arguments to .filterResults;\n this.debounceFilter = __WEBPACK_IMPORTED_MODULE_0_underscore___default.a.debounce(this.onFilterInput.bind(this), 500);\n\n this.unbindEvents();\n this.bindEvents();\n }\n }, {\n key: 'onFilterInput',\n value: function onFilterInput() {\n var $form = $(this.filterForm);\n var queryData = {};\n var filterGroupsParam = $form.find('[name=\"' + this.filterInputField + '\"]').val();\n\n if (filterGroupsParam) {\n queryData[this.filterInputField] = filterGroupsParam;\n }\n\n this.filterResults(queryData);\n\n if (this.setDefaultFilterOption) {\n this.setDefaultFilterOption();\n }\n }\n }, {\n key: 'bindEvents',\n value: function bindEvents() {\n this.listFilterElement.addEventListener('input', this.debounceFilter);\n }\n }, {\n key: 'unbindEvents',\n value: function unbindEvents() {\n this.listFilterElement.removeEventListener('input', this.debounceFilter);\n }\n }, {\n key: 'filterResults',\n value: function filterResults(params) {\n var _this = this;\n\n if (this.isBusy) {\n return false;\n }\n\n $(this.listHolderElement).fadeTo(250, 0.5);\n\n this.isBusy = true;\n\n return __WEBPACK_IMPORTED_MODULE_1__lib_utils_axios_utils__[\"a\" /* default */].get(this.getFilterEndpoint(), {\n params: params\n }).then(function (res) {\n _this.onFilterSuccess(res, params);\n _this.onFilterComplete();\n }).catch(function () {\n return _this.onFilterComplete();\n });\n }\n }, {\n key: 'onFilterSuccess',\n value: function onFilterSuccess(response, queryData) {\n if (response.data.html) {\n this.listHolderElement.innerHTML = response.data.html;\n }\n\n // Change url so if user reload a page - search results are saved\n var currentPath = this.getPagePath(queryData);\n\n return window.history.replaceState({\n page: currentPath\n }, document.title, currentPath);\n }\n }, {\n key: 'onFilterComplete',\n value: function onFilterComplete() {\n this.isBusy = false;\n $(this.listHolderElement).fadeTo(250, 1);\n }\n }]);\n\n return FilterableList;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (FilterableList);\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ }),\n\n/***/ \"./groups/components/groups.vue\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./vue_shared/components/table_pagination.vue + 2 modules\nvar table_pagination = __webpack_require__(\"./vue_shared/components/table_pagination.vue\");\n\n// EXTERNAL MODULE: ./groups/event_hub.js\nvar event_hub = __webpack_require__(\"./groups/event_hub.js\");\n\n// EXTERNAL MODULE: ./lib/utils/common_utils.js\nvar common_utils = __webpack_require__(\"./lib/utils/common_utils.js\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/groups.vue\n\n\n\n\n\n/* harmony default export */ var groups = ({\n components: {\n tablePagination: table_pagination[\"a\" /* default */]\n },\n props: {\n groups: {\n type: Array,\n required: true\n },\n pageInfo: {\n type: Object,\n required: true\n },\n searchEmpty: {\n type: Boolean,\n required: true\n },\n searchEmptyMessage: {\n type: String,\n required: true\n }\n },\n methods: {\n change: function change(page) {\n var filterGroupsParam = Object(common_utils[\"i\" /* getParameterByName */])('filter_groups');\n var sortParam = Object(common_utils[\"i\" /* getParameterByName */])('sort');\n var archivedParam = Object(common_utils[\"i\" /* getParameterByName */])('archived');\n event_hub[\"a\" /* default */].$emit('fetchPage', page, filterGroupsParam, sortParam, archivedParam);\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-00b60c28\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/groups.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"groups-list-tree-container\"},[(_vm.searchEmpty)?_c('div',{staticClass:\"has-no-search-results\"},[_vm._v(\"\\n \"+_vm._s(_vm.searchEmptyMessage)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.searchEmpty)?_c('group-folder',{attrs:{\"groups\":_vm.groups}}):_vm._e(),_vm._v(\" \"),(!_vm.searchEmpty)?_c('table-pagination',{attrs:{\"change\":_vm.change,\"page-info\":_vm.pageInfo}}):_vm._e()],1)}\nvar staticRenderFns = []\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/runtime/component-normalizer.js\nvar component_normalizer = __webpack_require__(\"../../../node_modules/vue-loader/lib/runtime/component-normalizer.js\");\n\n// CONCATENATED MODULE: ./groups/components/groups.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = Object(component_normalizer[\"a\" /* default */])(\n groups,\n render,\n staticRenderFns,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var components_groups = __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"./groups/constants.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return MAX_CHILDREN_COUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return COMMON_STR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return ITEM_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return GROUP_VISIBILITY_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return PROJECT_VISIBILITY_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return VISIBILITY_TYPE_ICON; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale__ = __webpack_require__(\"./locale/index.js\");\n\n\nvar MAX_CHILDREN_COUNT = 20;\n\nvar COMMON_STR = {\n FAILURE: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('An error occurred. Please try again.'),\n LEAVE_FORBIDDEN: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"e\" /* s__ */])('GroupsTree|Failed to leave the group. Please make sure you are not the only owner.'),\n LEAVE_BTN_TITLE: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"e\" /* s__ */])('GroupsTree|Leave this group'),\n EDIT_BTN_TITLE: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"e\" /* s__ */])('GroupsTree|Edit group'),\n GROUP_SEARCH_EMPTY: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"e\" /* s__ */])('GroupsTree|Sorry, no groups matched your search'),\n GROUP_PROJECT_SEARCH_EMPTY: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"e\" /* s__ */])('GroupsTree|Sorry, no groups or projects matched your search')\n};\n\nvar ITEM_TYPE = {\n PROJECT: 'project',\n GROUP: 'group'\n};\n\nvar GROUP_VISIBILITY_TYPE = {\n public: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('Public - The group and any public projects can be viewed without any authentication.'),\n internal: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('Internal - The group and any internal projects can be viewed by any logged in user.'),\n private: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('Private - The group and its projects can only be viewed by members.')\n};\n\nvar PROJECT_VISIBILITY_TYPE = {\n public: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('Public - The project can be accessed without any authentication.'),\n internal: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('Internal - The project can be accessed by any logged in user.'),\n private: Object(__WEBPACK_IMPORTED_MODULE_0__locale__[\"a\" /* __ */])('Private - Project access must be granted explicitly to each user.')\n};\n\nvar VISIBILITY_TYPE_ICON = {\n public: 'earth',\n internal: 'shield',\n private: 'lock'\n};\n\n/***/ }),\n\n/***/ \"./groups/event_hub.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(\"../../../node_modules/vue/dist/vue.esm.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]());\n\n/***/ }),\n\n/***/ \"./groups/groups_filterable_list.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__filterable_list__ = __webpack_require__(\"./filterable_list.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__event_hub__ = __webpack_require__(\"./groups/event_hub.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__lib_utils_common_utils__ = __webpack_require__(\"./lib/utils/common_utils.js\");\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\nvar GroupFilterableList = function (_FilterableList) {\n _inherits(GroupFilterableList, _FilterableList);\n\n function GroupFilterableList(_ref) {\n var form = _ref.form,\n filter = _ref.filter,\n holder = _ref.holder,\n filterEndpoint = _ref.filterEndpoint,\n pagePath = _ref.pagePath,\n dropdownSel = _ref.dropdownSel,\n filterInputField = _ref.filterInputField;\n\n _classCallCheck(this, GroupFilterableList);\n\n var _this = _possibleConstructorReturn(this, (GroupFilterableList.__proto__ || Object.getPrototypeOf(GroupFilterableList)).call(this, form, filter, holder, filterInputField));\n\n _this.form = form;\n _this.filterEndpoint = filterEndpoint;\n _this.pagePath = pagePath;\n _this.filterInputField = filterInputField;\n _this.$dropdown = $(dropdownSel);\n return _this;\n }\n\n _createClass(GroupFilterableList, [{\n key: 'getFilterEndpoint',\n value: function getFilterEndpoint() {\n return this.filterEndpoint;\n }\n }, {\n key: 'getPagePath',\n value: function getPagePath(queryData) {\n var params = queryData ? $.param(queryData) : '';\n var queryString = params ? '?' + params : '';\n return '' + this.pagePath + queryString;\n }\n }, {\n key: 'bindEvents',\n value: function bindEvents() {\n _get(GroupFilterableList.prototype.__proto__ || Object.getPrototypeOf(GroupFilterableList.prototype), 'bindEvents', this).call(this);\n\n this.onFilterOptionClikWrapper = this.onOptionClick.bind(this);\n\n this.$dropdown.on('click', 'a', this.onFilterOptionClikWrapper);\n }\n }, {\n key: 'onFilterInput',\n value: function onFilterInput() {\n var queryData = {};\n var $form = $(this.form);\n var archivedParam = Object(__WEBPACK_IMPORTED_MODULE_2__lib_utils_common_utils__[\"i\" /* getParameterByName */])('archived', window.location.href);\n var filterGroupsParam = $form.find('[name=\"' + this.filterInputField + '\"]').val();\n\n if (filterGroupsParam) {\n queryData[this.filterInputField] = filterGroupsParam;\n }\n\n if (archivedParam) {\n queryData.archived = archivedParam;\n }\n\n this.filterResults(queryData);\n\n if (this.setDefaultFilterOption) {\n this.setDefaultFilterOption();\n }\n }\n }, {\n key: 'setDefaultFilterOption',\n value: function setDefaultFilterOption() {\n var defaultOption = $.trim(this.$dropdown.find('.dropdown-menu li.js-filter-sort-order a').first().text());\n this.$dropdown.find('.dropdown-label').text(defaultOption);\n }\n }, {\n key: 'onOptionClick',\n value: function onOptionClick(e) {\n e.preventDefault();\n\n var queryData = {};\n\n // Get type of option selected from dropdown\n var currentTargetClassList = e.currentTarget.parentElement.classList;\n var isOptionFilterBySort = currentTargetClassList.contains('js-filter-sort-order');\n var isOptionFilterByArchivedProjects = currentTargetClassList.contains('js-filter-archived-projects');\n\n // Get option query param, also preserve currently applied query param\n var sortParam = Object(__WEBPACK_IMPORTED_MODULE_2__lib_utils_common_utils__[\"i\" /* getParameterByName */])('sort', isOptionFilterBySort ? e.currentTarget.href : window.location.href);\n var archivedParam = Object(__WEBPACK_IMPORTED_MODULE_2__lib_utils_common_utils__[\"i\" /* getParameterByName */])('archived', isOptionFilterByArchivedProjects ? e.currentTarget.href : window.location.href);\n\n if (sortParam) {\n queryData.sort = sortParam;\n }\n\n if (archivedParam) {\n queryData.archived = archivedParam;\n }\n\n this.filterResults(queryData);\n\n // Active selected option\n if (isOptionFilterBySort) {\n this.$dropdown.find('.dropdown-label').text($.trim(e.currentTarget.text));\n this.$dropdown.find('.dropdown-menu li.js-filter-sort-order a').removeClass('is-active');\n } else if (isOptionFilterByArchivedProjects) {\n this.$dropdown.find('.dropdown-menu li.js-filter-archived-projects a').removeClass('is-active');\n }\n\n $(e.target).addClass('is-active');\n\n // Clear current value on search form\n this.form.querySelector('[name=\"' + this.filterInputField + '\"]').value = '';\n }\n }, {\n key: 'onFilterSuccess',\n value: function onFilterSuccess(res, queryData) {\n var currentPath = this.getPagePath(queryData);\n\n window.history.replaceState({\n page: currentPath\n }, document.title, currentPath);\n\n __WEBPACK_IMPORTED_MODULE_1__event_hub__[\"a\" /* default */].$emit('updateGroups', res.data, Object.prototype.hasOwnProperty.call(queryData, this.filterInputField));\n __WEBPACK_IMPORTED_MODULE_1__event_hub__[\"a\" /* default */].$emit('updatePagination', Object(__WEBPACK_IMPORTED_MODULE_2__lib_utils_common_utils__[\"x\" /* normalizeHeaders */])(res.headers));\n }\n }]);\n\n return GroupFilterableList;\n}(__WEBPACK_IMPORTED_MODULE_0__filterable_list__[\"a\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (GroupFilterableList);\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ }),\n\n/***/ \"./groups/index.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue/dist/vue.esm.js\nvar vue_esm = __webpack_require__(\"../../../node_modules/vue/dist/vue.esm.js\");\n\n// EXTERNAL MODULE: ./vue_shared/translate.js\nvar translate = __webpack_require__(\"./vue_shared/translate.js\");\n\n// EXTERNAL MODULE: ./groups/groups_filterable_list.js\nvar groups_filterable_list = __webpack_require__(\"./groups/groups_filterable_list.js\");\n\n// EXTERNAL MODULE: ./lib/utils/common_utils.js\nvar common_utils = __webpack_require__(\"./lib/utils/common_utils.js\");\n\n// CONCATENATED MODULE: ./groups/store/groups_store.js\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\nvar groups_store_GroupsStore = function () {\n function GroupsStore(hideProjects) {\n _classCallCheck(this, GroupsStore);\n\n this.state = {};\n this.state.groups = [];\n this.state.pageInfo = {};\n this.hideProjects = hideProjects;\n }\n\n _createClass(GroupsStore, [{\n key: 'setGroups',\n value: function setGroups(rawGroups) {\n var _this = this;\n\n if (rawGroups && rawGroups.length) {\n this.state.groups = rawGroups.map(function (rawGroup) {\n return _this.formatGroupItem(rawGroup);\n });\n } else {\n this.state.groups = [];\n }\n }\n }, {\n key: 'setSearchedGroups',\n value: function setSearchedGroups(rawGroups) {\n var _this2 = this;\n\n var formatGroups = function formatGroups(groups) {\n return groups.map(function (group) {\n var formattedGroup = _this2.formatGroupItem(group);\n if (formattedGroup.children && formattedGroup.children.length) {\n formattedGroup.children = formatGroups(formattedGroup.children);\n }\n return formattedGroup;\n });\n };\n\n if (rawGroups && rawGroups.length) {\n this.state.groups = formatGroups(rawGroups);\n } else {\n this.state.groups = [];\n }\n }\n }, {\n key: 'setGroupChildren',\n value: function setGroupChildren(parentGroup, children) {\n var _this3 = this;\n\n var updatedParentGroup = parentGroup;\n updatedParentGroup.children = children.map(function (rawChild) {\n return _this3.formatGroupItem(rawChild);\n });\n updatedParentGroup.isOpen = true;\n updatedParentGroup.isChildrenLoading = false;\n }\n }, {\n key: 'getGroups',\n value: function getGroups() {\n return this.state.groups;\n }\n }, {\n key: 'setPaginationInfo',\n value: function setPaginationInfo() {\n var pagination = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var paginationInfo = void 0;\n\n if (Object.keys(pagination).length) {\n var normalizedHeaders = Object(common_utils[\"x\" /* normalizeHeaders */])(pagination);\n paginationInfo = Object(common_utils[\"z\" /* parseIntPagination */])(normalizedHeaders);\n } else {\n paginationInfo = pagination;\n }\n\n this.state.pageInfo = paginationInfo;\n }\n }, {\n key: 'getPaginationInfo',\n value: function getPaginationInfo() {\n return this.state.pageInfo;\n }\n }, {\n key: 'formatGroupItem',\n value: function formatGroupItem(rawGroupItem) {\n var groupChildren = rawGroupItem.children || [];\n var groupIsOpen = groupChildren.length > 0 || false;\n var childrenCount = this.hideProjects ? rawGroupItem.subgroup_count : rawGroupItem.children_count;\n\n return {\n id: rawGroupItem.id,\n name: rawGroupItem.name,\n fullName: rawGroupItem.full_name,\n description: rawGroupItem.markdown_description,\n visibility: rawGroupItem.visibility,\n avatarUrl: rawGroupItem.avatar_url,\n relativePath: rawGroupItem.relative_path,\n editPath: rawGroupItem.edit_path,\n leavePath: rawGroupItem.leave_path,\n canEdit: rawGroupItem.can_edit,\n canLeave: rawGroupItem.can_leave,\n type: rawGroupItem.type,\n permission: rawGroupItem.permission,\n children: groupChildren,\n isOpen: groupIsOpen,\n isChildrenLoading: false,\n isBeingRemoved: false,\n parentId: rawGroupItem.parent_id,\n childrenCount: childrenCount,\n projectCount: rawGroupItem.project_count,\n subgroupCount: rawGroupItem.subgroup_count,\n memberCount: rawGroupItem.number_users_with_delimiter,\n starCount: rawGroupItem.star_count,\n updatedAt: rawGroupItem.updated_at\n };\n }\n }, {\n key: 'removeGroup',\n value: function removeGroup(group, parentGroup) {\n var updatedParentGroup = parentGroup;\n if (updatedParentGroup.children && updatedParentGroup.children.length) {\n updatedParentGroup.children = parentGroup.children.filter(function (child) {\n return group.id !== child.id;\n });\n } else {\n this.state.groups = this.state.groups.filter(function (child) {\n return group.id !== child.id;\n });\n }\n }\n }]);\n\n return GroupsStore;\n}();\n\n/* harmony default export */ var groups_store = (groups_store_GroupsStore);\n// EXTERNAL MODULE: ./vue_shared/vue_resource_interceptor.js\nvar vue_resource_interceptor = __webpack_require__(\"./vue_shared/vue_resource_interceptor.js\");\n\n// CONCATENATED MODULE: ./groups/service/groups_service.js\nvar groups_service__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction groups_service__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\nvar groups_service_GroupsService = function () {\n function GroupsService(endpoint) {\n groups_service__classCallCheck(this, GroupsService);\n\n this.groups = vue_esm[\"a\" /* default */].resource(endpoint);\n }\n\n groups_service__createClass(GroupsService, [{\n key: 'getGroups',\n value: function getGroups(parentId, page, filterGroups, sort, archived) {\n var data = {};\n\n if (parentId) {\n data.parent_id = parentId;\n } else {\n // Do not send the following param for sub groups\n if (page) {\n data.page = page;\n }\n\n if (filterGroups) {\n data.filter = filterGroups;\n }\n\n if (sort) {\n data.sort = sort;\n }\n\n if (archived) {\n data.archived = archived;\n }\n }\n\n return this.groups.get(data);\n }\n\n // eslint-disable-next-line class-methods-use-this\n\n }, {\n key: 'leaveGroup',\n value: function leaveGroup(endpoint) {\n return vue_esm[\"a\" /* default */].http.delete(endpoint);\n }\n }]);\n\n return GroupsService;\n}();\n\n/* harmony default export */ var groups_service = (groups_service_GroupsService);\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/app.vue\nvar app = __webpack_require__(\"../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/app.vue\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-43c569e6\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/app.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('loading-icon',{staticClass:\"loading-animation prepend-top-20\",attrs:{\"size\":\"2\",\"label\":_vm.s__('GroupsTree|Loading groups')}}):_vm._e(),_vm._v(\" \"),(!_vm.isLoading)?_c('groups-component',{attrs:{\"groups\":_vm.groups,\"search-empty\":_vm.isSearchEmpty,\"search-empty-message\":_vm.searchEmptyMessage,\"page-info\":_vm.pageInfo}}):_vm._e(),_vm._v(\" \"),(_vm.showModal)?_c('modal',{attrs:{\"kind\":\"warning\",\"primary-button-label\":_vm.__('Leave'),\"title\":_vm.__('Are you sure?'),\"text\":_vm.groupLeaveConfirmationMessage},on:{\"cancel\":_vm.hideLeaveGroupModal,\"submit\":_vm.leaveGroup}}):_vm._e()],1)}\nvar staticRenderFns = []\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/runtime/component-normalizer.js\nvar component_normalizer = __webpack_require__(\"../../../node_modules/vue-loader/lib/runtime/component-normalizer.js\");\n\n// CONCATENATED MODULE: ./groups/components/app.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = Object(component_normalizer[\"a\" /* default */])(\n app[\"a\" /* default */],\n render,\n staticRenderFns,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var components_app = (Component.exports);\n\n// EXTERNAL MODULE: ./locale/index.js + 1 modules\nvar locale = __webpack_require__(\"./locale/index.js\");\n\n// EXTERNAL MODULE: ./groups/constants.js\nvar constants = __webpack_require__(\"./groups/constants.js\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/group_folder.vue\n\n\n\n\n/* harmony default export */ var group_folder = ({\n props: {\n parentGroup: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n groups: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n hasMoreChildren: function hasMoreChildren() {\n return this.parentGroup.childrenCount > constants[\"d\" /* MAX_CHILDREN_COUNT */];\n },\n moreChildrenStats: function moreChildrenStats() {\n return Object(locale[\"d\" /* n__ */])('One more item', '%d more items', this.parentGroup.childrenCount - this.parentGroup.children.length);\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6c373d29\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/group_folder.vue\nvar group_folder_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"content-list group-list-tree\"},[_vm._l((_vm.groups),function(group,index){return _c('group-item',{key:index,attrs:{\"group\":group,\"parent-group\":_vm.parentGroup}})}),_vm._v(\" \"),(_vm.hasMoreChildren)?_c('li',{staticClass:\"group-row\"},[_c('a',{staticClass:\"group-row-contents has-more-items\",attrs:{\"href\":_vm.parentGroup.relativePath}},[_c('i',{staticClass:\"fa fa-external-link\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n \"+_vm._s(_vm.moreChildrenStats)+\"\\n \")])]):_vm._e()],2)}\nvar group_folder_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/group_folder.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar group_folder___vue_template_functional__ = false\n/* styles */\nvar group_folder___vue_styles__ = null\n/* scopeId */\nvar group_folder___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar group_folder___vue_module_identifier__ = null\n\nvar group_folder_Component = Object(component_normalizer[\"a\" /* default */])(\n group_folder,\n group_folder_render,\n group_folder_staticRenderFns,\n group_folder___vue_template_functional__,\n group_folder___vue_styles__,\n group_folder___vue_scopeId__,\n group_folder___vue_module_identifier__\n)\n\n/* harmony default export */ var components_group_folder = (group_folder_Component.exports);\n\n// EXTERNAL MODULE: ./lib/utils/url_utility.js\nvar url_utility = __webpack_require__(\"./lib/utils/url_utility.js\");\n\n// EXTERNAL MODULE: ./vue_shared/directives/tooltip.js\nvar tooltip = __webpack_require__(\"./vue_shared/directives/tooltip.js\");\n\n// EXTERNAL MODULE: ./vue_shared/components/identicon.vue + 2 modules\nvar identicon = __webpack_require__(\"./vue_shared/components/identicon.vue\");\n\n// EXTERNAL MODULE: ./groups/event_hub.js\nvar event_hub = __webpack_require__(\"./groups/event_hub.js\");\n\n// EXTERNAL MODULE: ./vue_shared/components/icon.vue + 2 modules\nvar icon = __webpack_require__(\"./vue_shared/components/icon.vue\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/item_caret.vue\n\n\n\n/* harmony default export */ var item_caret = ({\n components: {\n icon: icon[\"a\" /* default */]\n },\n props: {\n isGroupOpen: {\n type: Boolean,\n required: true,\n default: false\n }\n },\n computed: {\n iconClass: function iconClass() {\n return this.isGroupOpen ? 'angle-down' : 'angle-right';\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0a988179\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_caret.vue\nvar item_caret_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"folder-caret\"},[_c('icon',{attrs:{\"size\":12,\"name\":_vm.iconClass}})],1)}\nvar item_caret_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/item_caret.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar item_caret___vue_template_functional__ = false\n/* styles */\nvar item_caret___vue_styles__ = null\n/* scopeId */\nvar item_caret___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar item_caret___vue_module_identifier__ = null\n\nvar item_caret_Component = Object(component_normalizer[\"a\" /* default */])(\n item_caret,\n item_caret_render,\n item_caret_staticRenderFns,\n item_caret___vue_template_functional__,\n item_caret___vue_styles__,\n item_caret___vue_scopeId__,\n item_caret___vue_module_identifier__\n)\n\n/* harmony default export */ var components_item_caret = (item_caret_Component.exports);\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/item_type_icon.vue\n\n\n\n\n/* harmony default export */ var item_type_icon = ({\n components: {\n icon: icon[\"a\" /* default */]\n },\n props: {\n itemType: {\n type: String,\n required: true\n },\n isGroupOpen: {\n type: Boolean,\n required: true,\n default: false\n }\n },\n computed: {\n iconClass: function iconClass() {\n if (this.itemType === constants[\"c\" /* ITEM_TYPE */].GROUP) {\n return this.isGroupOpen ? 'folder-open' : 'folder';\n }\n return 'bookmark';\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f517bb3e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_type_icon.vue\nvar item_type_icon_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"item-type-icon\"},[_c('icon',{attrs:{\"name\":_vm.iconClass}})],1)}\nvar item_type_icon_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/item_type_icon.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar item_type_icon___vue_template_functional__ = false\n/* styles */\nvar item_type_icon___vue_styles__ = null\n/* scopeId */\nvar item_type_icon___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar item_type_icon___vue_module_identifier__ = null\n\nvar item_type_icon_Component = Object(component_normalizer[\"a\" /* default */])(\n item_type_icon,\n item_type_icon_render,\n item_type_icon_staticRenderFns,\n item_type_icon___vue_template_functional__,\n item_type_icon___vue_styles__,\n item_type_icon___vue_scopeId__,\n item_type_icon___vue_module_identifier__\n)\n\n/* harmony default export */ var components_item_type_icon = (item_type_icon_Component.exports);\n\n// EXTERNAL MODULE: ./vue_shared/components/time_ago_tooltip.vue + 2 modules\nvar time_ago_tooltip = __webpack_require__(\"./vue_shared/components/time_ago_tooltip.vue\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/item_stats_value.vue\n\n\n\n\n/* harmony default export */ var item_stats_value = ({\n components: {\n icon: icon[\"a\" /* default */]\n },\n directives: {\n tooltip: tooltip[\"a\" /* default */]\n },\n props: {\n title: {\n type: String,\n required: false,\n default: ''\n },\n cssClass: {\n type: String,\n required: false,\n default: ''\n },\n iconName: {\n type: String,\n required: true\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'bottom'\n },\n /**\n * value could either be number or string\n * as `memberCount` is always passed as string\n * while `subgroupCount` & `projectCount`\n * are always number\n */\n value: {\n type: [Number, String],\n required: false,\n default: ''\n }\n },\n computed: {\n isValuePresent: function isValuePresent() {\n return this.value !== '';\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-17f8081d\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_stats_value.vue\nvar item_stats_value_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],class:_vm.cssClass,attrs:{\"data-container\":\"body\",\"data-placement\":_vm.tooltipPlacement,\"title\":_vm.title}},[_c('icon',{attrs:{\"name\":_vm.iconName}}),_vm._v(\" \"),(_vm.isValuePresent)?_c('span',{staticClass:\"stat-value\"},[_vm._v(\"\\n \"+_vm._s(_vm.value)+\"\\n \")]):_vm._e()],1)}\nvar item_stats_value_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/item_stats_value.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar item_stats_value___vue_template_functional__ = false\n/* styles */\nvar item_stats_value___vue_styles__ = null\n/* scopeId */\nvar item_stats_value___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar item_stats_value___vue_module_identifier__ = null\n\nvar item_stats_value_Component = Object(component_normalizer[\"a\" /* default */])(\n item_stats_value,\n item_stats_value_render,\n item_stats_value_staticRenderFns,\n item_stats_value___vue_template_functional__,\n item_stats_value___vue_styles__,\n item_stats_value___vue_scopeId__,\n item_stats_value___vue_module_identifier__\n)\n\n/* harmony default export */ var components_item_stats_value = (item_stats_value_Component.exports);\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/item_stats.vue\n\n\n\n\n\n\n/* harmony default export */ var item_stats = ({\n components: {\n icon: icon[\"a\" /* default */],\n timeAgoTooltip: time_ago_tooltip[\"a\" /* default */],\n itemStatsValue: components_item_stats_value\n },\n props: {\n item: {\n type: Object,\n required: true\n }\n },\n computed: {\n visibilityIcon: function visibilityIcon() {\n return constants[\"f\" /* VISIBILITY_TYPE_ICON */][this.item.visibility];\n },\n visibilityTooltip: function visibilityTooltip() {\n if (this.item.type === constants[\"c\" /* ITEM_TYPE */].GROUP) {\n return constants[\"b\" /* GROUP_VISIBILITY_TYPE */][this.item.visibility];\n }\n return constants[\"e\" /* PROJECT_VISIBILITY_TYPE */][this.item.visibility];\n },\n isProject: function isProject() {\n return this.item.type === constants[\"c\" /* ITEM_TYPE */].PROJECT;\n },\n isGroup: function isGroup() {\n return this.item.type === constants[\"c\" /* ITEM_TYPE */].GROUP;\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-414ecde0\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_stats.vue\nvar item_stats_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"stats\"},[(_vm.isGroup)?_c('item-stats-value',{attrs:{\"css-class\":\"number-subgroups\",\"icon-name\":\"folder\",\"title\":_vm.__('Subgroups'),\"value\":_vm.item.subgroupCount}}):_vm._e(),_vm._v(\" \"),(_vm.isGroup)?_c('item-stats-value',{attrs:{\"css-class\":\"number-projects\",\"icon-name\":\"bookmark\",\"title\":_vm.__('Projects'),\"value\":_vm.item.projectCount}}):_vm._e(),_vm._v(\" \"),(_vm.isGroup)?_c('item-stats-value',{attrs:{\"css-class\":\"number-users\",\"icon-name\":\"users\",\"title\":_vm.__('Members'),\"value\":_vm.item.memberCount}}):_vm._e(),_vm._v(\" \"),(_vm.isProject)?_c('item-stats-value',{attrs:{\"css-class\":\"project-stars\",\"icon-name\":\"star\",\"value\":_vm.item.starCount}}):_vm._e(),_vm._v(\" \"),_c('item-stats-value',{attrs:{\"css-class\":\"item-visibility\",\"tooltip-placement\":\"left\",\"icon-name\":_vm.visibilityIcon,\"title\":_vm.visibilityTooltip}}),_vm._v(\" \"),(_vm.isProject)?_c('div',{staticClass:\"last-updated\"},[_c('time-ago-tooltip',{attrs:{\"tooltip-placement\":\"bottom\",\"time\":_vm.item.updatedAt}})],1):_vm._e()],1)}\nvar item_stats_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/item_stats.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar item_stats___vue_template_functional__ = false\n/* styles */\nvar item_stats___vue_styles__ = null\n/* scopeId */\nvar item_stats___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar item_stats___vue_module_identifier__ = null\n\nvar item_stats_Component = Object(component_normalizer[\"a\" /* default */])(\n item_stats,\n item_stats_render,\n item_stats_staticRenderFns,\n item_stats___vue_template_functional__,\n item_stats___vue_styles__,\n item_stats___vue_scopeId__,\n item_stats___vue_module_identifier__\n)\n\n/* harmony default export */ var components_item_stats = (item_stats_Component.exports);\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/item_actions.vue\n\n\n\n\n\n\n/* harmony default export */ var item_actions = ({\n components: {\n icon: icon[\"a\" /* default */]\n },\n directives: {\n tooltip: tooltip[\"a\" /* default */]\n },\n props: {\n parentGroup: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n group: {\n type: Object,\n required: true\n }\n },\n computed: {\n leaveBtnTitle: function leaveBtnTitle() {\n return constants[\"a\" /* COMMON_STR */].LEAVE_BTN_TITLE;\n },\n editBtnTitle: function editBtnTitle() {\n return constants[\"a\" /* COMMON_STR */].EDIT_BTN_TITLE;\n }\n },\n methods: {\n onLeaveGroup: function onLeaveGroup() {\n event_hub[\"a\" /* default */].$emit('showLeaveGroupModal', this.group, this.parentGroup);\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2a9b1003\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_actions.vue\nvar item_actions_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"controls\"},[(_vm.group.canEdit)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"edit-group btn no-expand\",attrs:{\"href\":_vm.group.editPath,\"title\":_vm.editBtnTitle,\"aria-label\":_vm.editBtnTitle,\"data-container\":\"body\",\"data-placement\":\"bottom\"}},[_c('icon',{attrs:{\"name\":\"settings\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.group.canLeave)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"leave-group btn no-expand\",attrs:{\"href\":_vm.group.leavePath,\"title\":_vm.leaveBtnTitle,\"aria-label\":_vm.leaveBtnTitle,\"data-container\":\"body\",\"data-placement\":\"bottom\"},on:{\"click\":function($event){$event.preventDefault();_vm.onLeaveGroup($event)}}},[_c('icon',{attrs:{\"name\":\"leave\"}})],1):_vm._e()])}\nvar item_actions_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/item_actions.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar item_actions___vue_template_functional__ = false\n/* styles */\nvar item_actions___vue_styles__ = null\n/* scopeId */\nvar item_actions___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar item_actions___vue_module_identifier__ = null\n\nvar item_actions_Component = Object(component_normalizer[\"a\" /* default */])(\n item_actions,\n item_actions_render,\n item_actions_staticRenderFns,\n item_actions___vue_template_functional__,\n item_actions___vue_styles__,\n item_actions___vue_scopeId__,\n item_actions___vue_module_identifier__\n)\n\n/* harmony default export */ var components_item_actions = (item_actions_Component.exports);\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./groups/components/group_item.vue\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var group_item = ({\n directives: {\n tooltip: tooltip[\"a\" /* default */]\n },\n components: {\n identicon: identicon[\"a\" /* default */],\n itemCaret: components_item_caret,\n itemTypeIcon: components_item_type_icon,\n itemStats: components_item_stats,\n itemActions: components_item_actions\n },\n props: {\n parentGroup: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n group: {\n type: Object,\n required: true\n }\n },\n computed: {\n groupDomId: function groupDomId() {\n return 'group-' + this.group.id;\n },\n rowClass: function rowClass() {\n return {\n 'is-open': this.group.isOpen,\n 'has-children': this.hasChildren,\n 'has-description': this.group.description,\n 'being-removed': this.group.isBeingRemoved\n };\n },\n hasChildren: function hasChildren() {\n return this.group.childrenCount > 0;\n },\n hasAvatar: function hasAvatar() {\n return this.group.avatarUrl !== null;\n },\n isGroup: function isGroup() {\n return this.group.type === 'group';\n }\n },\n methods: {\n onClickRowGroup: function onClickRowGroup(e) {\n var NO_EXPAND_CLS = 'no-expand';\n if (!(e.target.classList.contains(NO_EXPAND_CLS) || e.target.parentElement.classList.contains(NO_EXPAND_CLS))) {\n if (this.hasChildren) {\n event_hub[\"a\" /* default */].$emit('toggleChildren', this.group);\n } else {\n Object(url_utility[\"g\" /* visitUrl */])(this.group.relativePath);\n }\n }\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4e680b05\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/group_item.vue\nvar group_item_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"group-row\",class:_vm.rowClass,attrs:{\"id\":_vm.groupDomId},on:{\"click\":function($event){$event.stopPropagation();_vm.onClickRowGroup($event)}}},[_c('div',{staticClass:\"group-row-contents\",class:{ 'project-row-contents': !_vm.isGroup }},[(_vm.isGroup)?_c('item-actions',{attrs:{\"group\":_vm.group,\"parent-group\":_vm.parentGroup}}):_vm._e(),_vm._v(\" \"),_c('item-stats',{attrs:{\"item\":_vm.group}}),_vm._v(\" \"),_c('div',{staticClass:\"folder-toggle-wrap\"},[_c('item-caret',{attrs:{\"is-group-open\":_vm.group.isOpen}}),_vm._v(\" \"),_c('item-type-icon',{attrs:{\"item-type\":_vm.group.type,\"is-group-open\":_vm.group.isOpen}})],1),_vm._v(\" \"),_c('div',{staticClass:\"avatar-container prepend-top-8 prepend-left-5 s24 hidden-xs\",class:{ 'content-loading': _vm.group.isChildrenLoading }},[_c('a',{staticClass:\"no-expand\",attrs:{\"href\":_vm.group.relativePath}},[(_vm.hasAvatar)?_c('img',{staticClass:\"avatar s24\",attrs:{\"src\":_vm.group.avatarUrl}}):_c('identicon',{attrs:{\"size-class\":\"s24\",\"entity-id\":_vm.group.id,\"entity-name\":_vm.group.name}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"title namespace-title\"},[_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"no-expand\",attrs:{\"href\":_vm.group.relativePath,\"title\":_vm.group.fullName,\"data-placement\":\"bottom\"}},[_vm._v(_vm._s(// ending bracket must be by closing tag to prevent\n // link hover text-decoration from over-extending\n _vm.group.name))]),_vm._v(\" \"),(_vm.group.permission)?_c('span',{staticClass:\"user-access-role\"},[_vm._v(\"\\n \"+_vm._s(_vm.group.permission)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.group.description)?_c('div',{staticClass:\"description\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.group.description)}})]):_vm._e()],1),_vm._v(\" \"),(_vm.group.isOpen && _vm.hasChildren)?_c('group-folder',{attrs:{\"parent-group\":_vm.group,\"groups\":_vm.group.children}}):_vm._e()],1)}\nvar group_item_staticRenderFns = []\n\n// CONCATENATED MODULE: ./groups/components/group_item.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar group_item___vue_template_functional__ = false\n/* styles */\nvar group_item___vue_styles__ = null\n/* scopeId */\nvar group_item___vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar group_item___vue_module_identifier__ = null\n\nvar group_item_Component = Object(component_normalizer[\"a\" /* default */])(\n group_item,\n group_item_render,\n group_item_staticRenderFns,\n group_item___vue_template_functional__,\n group_item___vue_styles__,\n group_item___vue_scopeId__,\n group_item___vue_module_identifier__\n)\n\n/* harmony default export */ var components_group_item = (group_item_Component.exports);\n\n// CONCATENATED MODULE: ./groups/index.js\n\n\n\n\n\n\n\n\n\n\nvue_esm[\"a\" /* default */].use(translate[\"a\" /* default */]);\n\n/* harmony default export */ var groups = __webpack_exports__[\"a\"] = (function () {\n var el = document.getElementById('js-groups-tree');\n\n // Don't do anything if element doesn't exist (No groups)\n // This is for when the user enters directly to the page via URL\n if (!el) {\n return;\n }\n\n vue_esm[\"a\" /* default */].component('group-folder', components_group_folder);\n vue_esm[\"a\" /* default */].component('group-item', components_group_item);\n\n // eslint-disable-next-line no-new\n new vue_esm[\"a\" /* default */]({\n el: el,\n components: {\n groupsApp: components_app\n },\n data: function data() {\n var dataset = this.$options.el.dataset;\n var hideProjects = dataset.hideProjects === 'true';\n var store = new groups_store(hideProjects);\n var service = new groups_service(dataset.endpoint);\n\n return {\n store: store,\n service: service,\n hideProjects: hideProjects,\n loading: true\n };\n },\n beforeMount: function beforeMount() {\n var dataset = this.$options.el.dataset;\n var groupFilterList = null;\n var form = document.querySelector(dataset.formSel);\n var filter = document.querySelector(dataset.filterSel);\n var holder = document.querySelector(dataset.holderSel);\n\n var opts = {\n form: form,\n filter: filter,\n holder: holder,\n filterEndpoint: dataset.endpoint,\n pagePath: dataset.path,\n dropdownSel: dataset.dropdownSel,\n filterInputField: 'filter'\n };\n\n groupFilterList = new groups_filterable_list[\"a\" /* default */](opts);\n groupFilterList.initSearch();\n },\n render: function render(createElement) {\n return createElement('groups-app', {\n props: {\n store: this.store,\n service: this.service,\n hideProjects: this.hideProjects\n }\n });\n }\n });\n});\n\n/***/ }),\n\n/***/ \"./pages/explore/groups/index.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n// EXTERNAL MODULE: ./filterable_list.js\nvar filterable_list = __webpack_require__(\"./filterable_list.js\");\n\n// CONCATENATED MODULE: ./groups_list.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Makes search request for groups when user types a value in the search input.\n * Updates the html content of the page with the received one.\n */\n\nvar groups_list_GroupsList = function GroupsList() {\n _classCallCheck(this, GroupsList);\n\n var form = document.querySelector('form#group-filter-form');\n var filter = document.querySelector('.js-groups-list-filter');\n var holder = document.querySelector('.js-groups-list-holder');\n\n if (form && filter && holder) {\n var list = new filterable_list[\"a\" /* default */](form, filter, holder);\n list.initSearch();\n }\n};\n\n/* harmony default export */ var groups_list = (groups_list_GroupsList);\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/js-cookie/src/js.cookie.js\nvar js_cookie = __webpack_require__(\"../../../node_modules/js-cookie/src/js.cookie.js\");\nvar js_cookie_default = /*#__PURE__*/__webpack_require__.n(js_cookie);\n\n// CONCATENATED MODULE: ./landing.js\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction landing__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\nvar landing_Landing = function () {\n function Landing(landingElement, dismissButton, cookieName) {\n landing__classCallCheck(this, Landing);\n\n this.landingElement = landingElement;\n this.cookieName = cookieName;\n this.dismissButton = dismissButton;\n this.eventWrapper = {};\n }\n\n _createClass(Landing, [{\n key: 'toggle',\n value: function toggle() {\n var isDismissed = this.isDismissed();\n\n this.landingElement.classList.toggle('hidden', isDismissed);\n if (!isDismissed) this.addEvents();\n }\n }, {\n key: 'addEvents',\n value: function addEvents() {\n this.eventWrapper.dismissLanding = this.dismissLanding.bind(this);\n this.dismissButton.addEventListener('click', this.eventWrapper.dismissLanding);\n }\n }, {\n key: 'removeEvents',\n value: function removeEvents() {\n this.dismissButton.removeEventListener('click', this.eventWrapper.dismissLanding);\n }\n }, {\n key: 'dismissLanding',\n value: function dismissLanding() {\n this.landingElement.classList.add('hidden');\n js_cookie_default.a.set(this.cookieName, 'true', { expires: 365 });\n }\n }, {\n key: 'isDismissed',\n value: function isDismissed() {\n return js_cookie_default.a.get(this.cookieName) === 'true';\n }\n }]);\n\n return Landing;\n}();\n\n/* harmony default export */ var landing = (landing_Landing);\n// EXTERNAL MODULE: ./groups/index.js + 25 modules\nvar groups = __webpack_require__(\"./groups/index.js\");\n\n// CONCATENATED MODULE: ./pages/explore/groups/index.js\n\n\n\n\ndocument.addEventListener('DOMContentLoaded', function () {\n new groups_list(); // eslint-disable-line no-new\n Object(groups[\"a\" /* default */])();\n var landingElement = document.querySelector('.js-explore-groups-landing');\n if (!landingElement) return;\n var exploreGroupsLanding = new landing(landingElement, landingElement.querySelector('.dismiss-button'), 'explore_groups_landing_dismissed');\n exploreGroupsLanding.toggle();\n});\n\n/***/ }),\n\n/***/ \"./vue_shared/components/icon.vue\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./vue_shared/components/icon.vue\n\n\n/* This is a re-usable vue component for rendering a svg sprite\n icon\n\n Sample configuration:\n\n \n\n*/\n// only allow classes in images.scss e.g. s12\nvar validSizes = [8, 12, 16, 18, 24, 32, 48, 72];\n\n/* harmony default export */ var icon = ({\n props: {\n name: {\n type: String,\n required: true\n },\n\n size: {\n type: Number,\n required: false,\n default: 16,\n validator: function validator(value) {\n return validSizes.includes(value);\n }\n },\n\n cssClasses: {\n type: String,\n required: false,\n default: ''\n },\n\n width: {\n type: Number,\n required: false,\n default: null\n },\n\n height: {\n type: Number,\n required: false,\n default: null\n },\n\n y: {\n type: Number,\n required: false,\n default: null\n },\n\n x: {\n type: Number,\n required: false,\n default: null\n }\n },\n\n computed: {\n spriteHref: function spriteHref() {\n return gon.sprite_icons + '#' + this.name;\n },\n iconSizeClass: function iconSizeClass() {\n return this.size ? 's' + this.size : '';\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-43441268\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/icon.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:[_vm.iconSizeClass, _vm.cssClasses],attrs:{\"width\":_vm.width,\"height\":_vm.height,\"x\":_vm.x,\"y\":_vm.y}},[_c('use',_vm._b({},'use',{ 'xlink:href':_vm.spriteHref },false))])}\nvar staticRenderFns = []\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/runtime/component-normalizer.js\nvar component_normalizer = __webpack_require__(\"../../../node_modules/vue-loader/lib/runtime/component-normalizer.js\");\n\n// CONCATENATED MODULE: ./vue_shared/components/icon.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = Object(component_normalizer[\"a\" /* default */])(\n icon,\n render,\n staticRenderFns,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var components_icon = __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"./vue_shared/components/modal.vue\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./vue_shared/components/modal.vue\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable vue/require-default-prop */\n/* harmony default export */ var modal = ({\n name: 'Modal',\n\n props: {\n id: {\n type: String,\n required: false\n },\n title: {\n type: String,\n required: false\n },\n text: {\n type: String,\n required: false\n },\n hideFooter: {\n type: Boolean,\n required: false,\n default: false\n },\n kind: {\n type: String,\n required: false,\n default: 'primary'\n },\n modalDialogClass: {\n type: String,\n required: false,\n default: ''\n },\n closeKind: {\n type: String,\n required: false,\n default: 'default'\n },\n closeButtonLabel: {\n type: String,\n required: false,\n default: 'Cancel'\n },\n primaryButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n secondaryButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n submitDisabled: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n\n computed: {\n btnKindClass: function btnKindClass() {\n return _defineProperty({}, 'btn-' + this.kind, true);\n },\n btnCancelKindClass: function btnCancelKindClass() {\n return _defineProperty({}, 'btn-' + this.closeKind, true);\n }\n },\n\n methods: {\n emitCancel: function emitCancel(event) {\n this.$emit('cancel', event);\n },\n emitSubmit: function emitSubmit(event) {\n this.$emit('submit', event);\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-8e18618c\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/modal.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-open\"},[_c('div',{staticClass:\"modal\",class:_vm.id ? '' : 'show',attrs:{\"id\":_vm.id,\"role\":\"dialog\",\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"modal-dialog\",class:_vm.modalDialogClass,attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\",[_c('h4',{staticClass:\"modal-title pull-left\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"close pull-right\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"},on:{\"click\":function($event){_vm.emitCancel($event)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])])],2),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"body\",[_c('p',[_vm._v(_vm._s(_vm.text))])],{text:_vm.text})],2),_vm._v(\" \"),(!_vm.hideFooter)?_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn\",class:_vm.btnCancelKindClass,attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.emitCancel($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.closeButtonLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.secondaryButtonLabel)?_vm._t(\"secondary-button\",[(_vm.secondaryButtonLabel)?_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"\\n \"+_vm._s(_vm.secondaryButtonLabel)+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.primaryButtonLabel)?_c('button',{staticClass:\"btn js-primary-button\",class:_vm.btnKindClass,attrs:{\"type\":\"button\",\"disabled\":_vm.submitDisabled,\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.emitSubmit($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.primaryButtonLabel)+\"\\n \")]):_vm._e()],2):_vm._e()])])]),_vm._v(\" \"),(!_vm.id)?_c('div',{staticClass:\"modal-backdrop fade in\"}):_vm._e()])}\nvar staticRenderFns = []\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/runtime/component-normalizer.js\nvar component_normalizer = __webpack_require__(\"../../../node_modules/vue-loader/lib/runtime/component-normalizer.js\");\n\n// CONCATENATED MODULE: ./vue_shared/components/modal.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = Object(component_normalizer[\"a\" /* default */])(\n modal,\n render,\n staticRenderFns,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var components_modal = __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"./vue_shared/components/table_pagination.vue\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./locale/index.js + 1 modules\nvar locale = __webpack_require__(\"./locale/index.js\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./vue_shared/components/table_pagination.vue\n\n\n\nvar PAGINATION_UI_BUTTON_LIMIT = 4;\nvar UI_LIMIT = 6;\nvar SPREAD = '...';\nvar PREV = Object(locale[\"e\" /* s__ */])('Pagination|Prev');\nvar NEXT = Object(locale[\"e\" /* s__ */])('Pagination|Next');\nvar FIRST = Object(locale[\"e\" /* s__ */])('Pagination|« First');\nvar LAST = Object(locale[\"e\" /* s__ */])('Pagination|Last »');\n\n/* harmony default export */ var table_pagination = ({\n props: {\n /**\n This function will take the information given by the pagination component\n Here is an example `change` method:\n change(pagenum) {\n gl.utils.visitUrl(`?page=${pagenum}`);\n },\n */\n change: {\n type: Function,\n required: true\n },\n\n /**\n pageInfo will come from the headers of the API call\n in the `.then` clause of the VueResource API call\n there should be a function that contructs the pageInfo for this component\n This is an example:\n const pageInfo = headers => ({\n perPage: +headers['X-Per-Page'],\n page: +headers['X-Page'],\n total: +headers['X-Total'],\n totalPages: +headers['X-Total-Pages'],\n nextPage: +headers['X-Next-Page'],\n previousPage: +headers['X-Prev-Page'],\n });\n */\n pageInfo: {\n type: Object,\n required: true\n }\n },\n computed: {\n prev: function prev() {\n return this.pageInfo.previousPage;\n },\n next: function next() {\n return this.pageInfo.nextPage;\n },\n getItems: function getItems() {\n var total = this.pageInfo.totalPages;\n var page = this.pageInfo.page;\n var items = [];\n\n if (page > 1) {\n items.push({ title: FIRST, first: true });\n }\n\n if (page > 1) {\n items.push({ title: PREV, prev: true });\n } else {\n items.push({ title: PREV, disabled: true, prev: true });\n }\n\n if (page > UI_LIMIT) items.push({ title: SPREAD, separator: true });\n\n var start = Math.max(page - PAGINATION_UI_BUTTON_LIMIT, 1);\n var end = Math.min(page + PAGINATION_UI_BUTTON_LIMIT, total);\n\n for (var i = start; i <= end; i += 1) {\n var isActive = i === page;\n items.push({ title: i, active: isActive, page: true });\n }\n\n if (total - page > PAGINATION_UI_BUTTON_LIMIT) {\n items.push({ title: SPREAD, separator: true, page: true });\n }\n\n if (page === total) {\n items.push({ title: NEXT, disabled: true, next: true });\n } else if (total - page >= 1) {\n items.push({ title: NEXT, next: true });\n }\n\n if (total - page >= 1) {\n items.push({ title: LAST, last: true });\n }\n\n return items;\n },\n showPagination: function showPagination() {\n return this.pageInfo.totalPages > 1;\n }\n },\n methods: {\n changePage: function changePage(text, isDisabled) {\n if (isDisabled) return;\n\n var _pageInfo = this.pageInfo,\n totalPages = _pageInfo.totalPages,\n nextPage = _pageInfo.nextPage,\n previousPage = _pageInfo.previousPage;\n\n\n switch (text) {\n case SPREAD:\n break;\n case LAST:\n this.change(totalPages);\n break;\n case NEXT:\n this.change(nextPage);\n break;\n case PREV:\n this.change(previousPage);\n break;\n case FIRST:\n this.change(1);\n break;\n default:\n this.change(+text);\n break;\n }\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f62ca93a\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/table_pagination.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showPagination)?_c('div',{staticClass:\"gl-pagination\"},[_c('ul',{staticClass:\"pagination clearfix\"},_vm._l((_vm.getItems),function(item,index){return _c('li',{key:index,class:{\n page: item.page,\n 'js-previous-button': item.prev,\n 'js-next-button': item.next,\n 'js-last-button': item.last,\n 'js-first-button': item.first,\n separator: item.separator,\n active: item.active,\n disabled: item.disabled\n }},[_c('a',{on:{\"click\":function($event){$event.preventDefault();_vm.changePage(item.title, item.disabled)}}},[_vm._v(\"\\n \"+_vm._s(item.title)+\"\\n \")])])}))]):_vm._e()}\nvar staticRenderFns = []\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/runtime/component-normalizer.js\nvar component_normalizer = __webpack_require__(\"../../../node_modules/vue-loader/lib/runtime/component-normalizer.js\");\n\n// CONCATENATED MODULE: ./vue_shared/components/table_pagination.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = Object(component_normalizer[\"a\" /* default */])(\n table_pagination,\n render,\n staticRenderFns,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var components_table_pagination = __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"./vue_shared/components/time_ago_tooltip.vue\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./vue_shared/directives/tooltip.js\nvar tooltip = __webpack_require__(\"./vue_shared/directives/tooltip.js\");\n\n// EXTERNAL MODULE: ./vue_shared/mixins/timeago.js\nvar timeago = __webpack_require__(\"./vue_shared/mixins/timeago.js\");\n\n// EXTERNAL MODULE: ./lib/utils/datetime_utility.js\nvar datetime_utility = __webpack_require__(\"./lib/utils/datetime_utility.js\");\n\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/babel-loader/lib!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=script&index=0!./vue_shared/components/time_ago_tooltip.vue\n\n\n\n\n\n/**\n * Port of ruby helper time_ago_with_tooltip\n */\n\n/* harmony default export */ var time_ago_tooltip = ({\n directives: {\n tooltip: tooltip[\"a\" /* default */]\n },\n mixins: [timeago[\"a\" /* default */]],\n props: {\n time: {\n type: String,\n required: true\n },\n\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top'\n },\n\n cssClass: {\n type: String,\n required: false,\n default: ''\n }\n }\n});\n// CONCATENATED MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-202207e1\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/time_ago_tooltip.vue\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('time',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],class:_vm.cssClass,attrs:{\"title\":_vm.tooltipTitle(_vm.time),\"data-placement\":_vm.tooltipPlacement,\"data-container\":\"body\"}},[_vm._v(\"\\n \"+_vm._s(_vm.timeFormated(_vm.time))+\"\\n\")])}\nvar staticRenderFns = []\n\n// EXTERNAL MODULE: /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/runtime/component-normalizer.js\nvar component_normalizer = __webpack_require__(\"../../../node_modules/vue-loader/lib/runtime/component-normalizer.js\");\n\n// CONCATENATED MODULE: ./vue_shared/components/time_ago_tooltip.vue\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\n\nvar Component = Object(component_normalizer[\"a\" /* default */])(\n time_ago_tooltip,\n render,\n staticRenderFns,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ var components_time_ago_tooltip = __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ \"./vue_shared/directives/tooltip.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {/* harmony default export */ __webpack_exports__[\"a\"] = ({\n bind: function bind(el) {\n $(el).tooltip();\n },\n componentUpdated: function componentUpdated(el) {\n $(el).tooltip('fixTitle');\n },\n unbind: function unbind(el) {\n $(el).tooltip('destroy');\n }\n});\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ }),\n\n/***/ \"./vue_shared/mixins/timeago.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lib_utils_datetime_utility__ = __webpack_require__(\"./lib/utils/datetime_utility.js\");\n\n\n/**\n * Mixin with time ago methods used in some vue components\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n methods: {\n timeFormated: function timeFormated(time) {\n var timeago = Object(__WEBPACK_IMPORTED_MODULE_0__lib_utils_datetime_utility__[\"d\" /* getTimeago */])();\n\n return timeago.format(time);\n },\n tooltipTitle: function tooltipTitle(time) {\n return Object(__WEBPACK_IMPORTED_MODULE_0__lib_utils_datetime_utility__[\"a\" /* formatDate */])(time);\n }\n }\n});\n\n/***/ })\n\n},[\"./pages/explore/groups/index.js\"]);\n\n\n// WEBPACK FOOTER //\n// pages.explore.groups.4a7f530e043f3cfebe23.bundle.js","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/app.vue","import _ from 'underscore';\nimport axios from './lib/utils/axios_utils';\n\n/**\n * Makes search request for content when user types a value in the search input.\n * Updates the html content of the page with the received one.\n */\n\nexport default class FilterableList {\n constructor(form, filter, holder, filterInputField = 'filter_groups') {\n this.filterForm = form;\n this.listFilterElement = filter;\n this.listHolderElement = holder;\n this.filterInputField = filterInputField;\n this.isBusy = false;\n }\n\n getFilterEndpoint() {\n return `${this.filterForm.getAttribute('action')}?${$(this.filterForm).serialize()}`;\n }\n\n getPagePath() {\n return this.getFilterEndpoint();\n }\n\n initSearch() {\n // Wrap to prevent passing event arguments to .filterResults;\n this.debounceFilter = _.debounce(this.onFilterInput.bind(this), 500);\n\n this.unbindEvents();\n this.bindEvents();\n }\n\n onFilterInput() {\n const $form = $(this.filterForm);\n const queryData = {};\n const filterGroupsParam = $form.find(`[name=\"${this.filterInputField}\"]`).val();\n\n if (filterGroupsParam) {\n queryData[this.filterInputField] = filterGroupsParam;\n }\n\n this.filterResults(queryData);\n\n if (this.setDefaultFilterOption) {\n this.setDefaultFilterOption();\n }\n }\n\n bindEvents() {\n this.listFilterElement.addEventListener('input', this.debounceFilter);\n }\n\n unbindEvents() {\n this.listFilterElement.removeEventListener('input', this.debounceFilter);\n }\n\n filterResults(params) {\n if (this.isBusy) {\n return false;\n }\n\n $(this.listHolderElement).fadeTo(250, 0.5);\n\n this.isBusy = true;\n\n return axios.get(this.getFilterEndpoint(), {\n params,\n }).then((res) => {\n this.onFilterSuccess(res, params);\n this.onFilterComplete();\n }).catch(() => this.onFilterComplete());\n }\n\n onFilterSuccess(response, queryData) {\n if (response.data.html) {\n this.listHolderElement.innerHTML = response.data.html;\n }\n\n // Change url so if user reload a page - search results are saved\n const currentPath = this.getPagePath(queryData);\n\n return window.history.replaceState({\n page: currentPath,\n }, document.title, currentPath);\n }\n\n onFilterComplete() {\n this.isBusy = false;\n $(this.listHolderElement).fadeTo(250, 1);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./filterable_list.js","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/groups.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"groups-list-tree-container\"},[(_vm.searchEmpty)?_c('div',{staticClass:\"has-no-search-results\"},[_vm._v(\"\\n \"+_vm._s(_vm.searchEmptyMessage)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.searchEmpty)?_c('group-folder',{attrs:{\"groups\":_vm.groups}}):_vm._e(),_vm._v(\" \"),(!_vm.searchEmpty)?_c('table-pagination',{attrs:{\"change\":_vm.change,\"page-info\":_vm.pageInfo}}):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-00b60c28\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/groups.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./groups.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./groups.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-00b60c28\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./groups.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/groups.vue\n// module id = null\n// module chunks = ","import { __, s__ } from '../locale';\n\nexport const MAX_CHILDREN_COUNT = 20;\n\nexport const COMMON_STR = {\n FAILURE: __('An error occurred. Please try again.'),\n LEAVE_FORBIDDEN: s__('GroupsTree|Failed to leave the group. Please make sure you are not the only owner.'),\n LEAVE_BTN_TITLE: s__('GroupsTree|Leave this group'),\n EDIT_BTN_TITLE: s__('GroupsTree|Edit group'),\n GROUP_SEARCH_EMPTY: s__('GroupsTree|Sorry, no groups matched your search'),\n GROUP_PROJECT_SEARCH_EMPTY: s__('GroupsTree|Sorry, no groups or projects matched your search'),\n};\n\nexport const ITEM_TYPE = {\n PROJECT: 'project',\n GROUP: 'group',\n};\n\nexport const GROUP_VISIBILITY_TYPE = {\n public: __('Public - The group and any public projects can be viewed without any authentication.'),\n internal: __('Internal - The group and any internal projects can be viewed by any logged in user.'),\n private: __('Private - The group and its projects can only be viewed by members.'),\n};\n\nexport const PROJECT_VISIBILITY_TYPE = {\n public: __('Public - The project can be accessed without any authentication.'),\n internal: __('Internal - The project can be accessed by any logged in user.'),\n private: __('Private - Project access must be granted explicitly to each user.'),\n};\n\nexport const VISIBILITY_TYPE_ICON = {\n public: 'earth',\n internal: 'shield',\n private: 'lock',\n};\n\n\n\n// WEBPACK FOOTER //\n// ./groups/constants.js","import Vue from 'vue';\n\nexport default new Vue();\n\n\n\n// WEBPACK FOOTER //\n// ./groups/event_hub.js","import FilterableList from '~/filterable_list';\nimport eventHub from './event_hub';\nimport { normalizeHeaders, getParameterByName } from '../lib/utils/common_utils';\n\nexport default class GroupFilterableList extends FilterableList {\n constructor({ form, filter, holder, filterEndpoint, pagePath, dropdownSel, filterInputField }) {\n super(form, filter, holder, filterInputField);\n this.form = form;\n this.filterEndpoint = filterEndpoint;\n this.pagePath = pagePath;\n this.filterInputField = filterInputField;\n this.$dropdown = $(dropdownSel);\n }\n\n getFilterEndpoint() {\n return this.filterEndpoint;\n }\n\n getPagePath(queryData) {\n const params = queryData ? $.param(queryData) : '';\n const queryString = params ? `?${params}` : '';\n return `${this.pagePath}${queryString}`;\n }\n\n bindEvents() {\n super.bindEvents();\n\n this.onFilterOptionClikWrapper = this.onOptionClick.bind(this);\n\n this.$dropdown.on('click', 'a', this.onFilterOptionClikWrapper);\n }\n\n onFilterInput() {\n const queryData = {};\n const $form = $(this.form);\n const archivedParam = getParameterByName('archived', window.location.href);\n const filterGroupsParam = $form.find(`[name=\"${this.filterInputField}\"]`).val();\n\n if (filterGroupsParam) {\n queryData[this.filterInputField] = filterGroupsParam;\n }\n\n if (archivedParam) {\n queryData.archived = archivedParam;\n }\n\n this.filterResults(queryData);\n\n if (this.setDefaultFilterOption) {\n this.setDefaultFilterOption();\n }\n }\n\n setDefaultFilterOption() {\n const defaultOption = $.trim(this.$dropdown.find('.dropdown-menu li.js-filter-sort-order a').first().text());\n this.$dropdown.find('.dropdown-label').text(defaultOption);\n }\n\n onOptionClick(e) {\n e.preventDefault();\n\n const queryData = {};\n\n // Get type of option selected from dropdown\n const currentTargetClassList = e.currentTarget.parentElement.classList;\n const isOptionFilterBySort = currentTargetClassList.contains('js-filter-sort-order');\n const isOptionFilterByArchivedProjects = currentTargetClassList.contains('js-filter-archived-projects');\n\n // Get option query param, also preserve currently applied query param\n const sortParam = getParameterByName('sort', isOptionFilterBySort ? e.currentTarget.href : window.location.href);\n const archivedParam = getParameterByName('archived', isOptionFilterByArchivedProjects ? e.currentTarget.href : window.location.href);\n\n if (sortParam) {\n queryData.sort = sortParam;\n }\n\n if (archivedParam) {\n queryData.archived = archivedParam;\n }\n\n this.filterResults(queryData);\n\n // Active selected option\n if (isOptionFilterBySort) {\n this.$dropdown.find('.dropdown-label').text($.trim(e.currentTarget.text));\n this.$dropdown.find('.dropdown-menu li.js-filter-sort-order a').removeClass('is-active');\n } else if (isOptionFilterByArchivedProjects) {\n this.$dropdown.find('.dropdown-menu li.js-filter-archived-projects a').removeClass('is-active');\n }\n\n $(e.target).addClass('is-active');\n\n // Clear current value on search form\n this.form.querySelector(`[name=\"${this.filterInputField}\"]`).value = '';\n }\n\n onFilterSuccess(res, queryData) {\n const currentPath = this.getPagePath(queryData);\n\n window.history.replaceState({\n page: currentPath,\n }, document.title, currentPath);\n\n eventHub.$emit('updateGroups', res.data, Object.prototype.hasOwnProperty.call(queryData, this.filterInputField));\n eventHub.$emit('updatePagination', normalizeHeaders(res.headers));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./groups/groups_filterable_list.js","import { normalizeHeaders, parseIntPagination } from '../../lib/utils/common_utils';\n\nexport default class GroupsStore {\n constructor(hideProjects) {\n this.state = {};\n this.state.groups = [];\n this.state.pageInfo = {};\n this.hideProjects = hideProjects;\n }\n\n setGroups(rawGroups) {\n if (rawGroups && rawGroups.length) {\n this.state.groups = rawGroups.map(rawGroup => this.formatGroupItem(rawGroup));\n } else {\n this.state.groups = [];\n }\n }\n\n setSearchedGroups(rawGroups) {\n const formatGroups = groups => groups.map((group) => {\n const formattedGroup = this.formatGroupItem(group);\n if (formattedGroup.children && formattedGroup.children.length) {\n formattedGroup.children = formatGroups(formattedGroup.children);\n }\n return formattedGroup;\n });\n\n if (rawGroups && rawGroups.length) {\n this.state.groups = formatGroups(rawGroups);\n } else {\n this.state.groups = [];\n }\n }\n\n setGroupChildren(parentGroup, children) {\n const updatedParentGroup = parentGroup;\n updatedParentGroup.children = children.map(rawChild => this.formatGroupItem(rawChild));\n updatedParentGroup.isOpen = true;\n updatedParentGroup.isChildrenLoading = false;\n }\n\n getGroups() {\n return this.state.groups;\n }\n\n setPaginationInfo(pagination = {}) {\n let paginationInfo;\n\n if (Object.keys(pagination).length) {\n const normalizedHeaders = normalizeHeaders(pagination);\n paginationInfo = parseIntPagination(normalizedHeaders);\n } else {\n paginationInfo = pagination;\n }\n\n this.state.pageInfo = paginationInfo;\n }\n\n getPaginationInfo() {\n return this.state.pageInfo;\n }\n\n formatGroupItem(rawGroupItem) {\n const groupChildren = rawGroupItem.children || [];\n const groupIsOpen = (groupChildren.length > 0) || false;\n const childrenCount = this.hideProjects ?\n rawGroupItem.subgroup_count :\n rawGroupItem.children_count;\n\n return {\n id: rawGroupItem.id,\n name: rawGroupItem.name,\n fullName: rawGroupItem.full_name,\n description: rawGroupItem.markdown_description,\n visibility: rawGroupItem.visibility,\n avatarUrl: rawGroupItem.avatar_url,\n relativePath: rawGroupItem.relative_path,\n editPath: rawGroupItem.edit_path,\n leavePath: rawGroupItem.leave_path,\n canEdit: rawGroupItem.can_edit,\n canLeave: rawGroupItem.can_leave,\n type: rawGroupItem.type,\n permission: rawGroupItem.permission,\n children: groupChildren,\n isOpen: groupIsOpen,\n isChildrenLoading: false,\n isBeingRemoved: false,\n parentId: rawGroupItem.parent_id,\n childrenCount,\n projectCount: rawGroupItem.project_count,\n subgroupCount: rawGroupItem.subgroup_count,\n memberCount: rawGroupItem.number_users_with_delimiter,\n starCount: rawGroupItem.star_count,\n updatedAt: rawGroupItem.updated_at,\n };\n }\n\n removeGroup(group, parentGroup) {\n const updatedParentGroup = parentGroup;\n if (updatedParentGroup.children && updatedParentGroup.children.length) {\n updatedParentGroup.children = parentGroup.children.filter(child => group.id !== child.id);\n } else {\n this.state.groups = this.state.groups.filter(child => group.id !== child.id);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./groups/store/groups_store.js","import Vue from 'vue';\nimport '../../vue_shared/vue_resource_interceptor';\n\nexport default class GroupsService {\n constructor(endpoint) {\n this.groups = Vue.resource(endpoint);\n }\n\n getGroups(parentId, page, filterGroups, sort, archived) {\n const data = {};\n\n if (parentId) {\n data.parent_id = parentId;\n } else {\n // Do not send the following param for sub groups\n if (page) {\n data.page = page;\n }\n\n if (filterGroups) {\n data.filter = filterGroups;\n }\n\n if (sort) {\n data.sort = sort;\n }\n\n if (archived) {\n data.archived = archived;\n }\n }\n\n return this.groups.get(data);\n }\n\n // eslint-disable-next-line class-methods-use-this\n leaveGroup(endpoint) {\n return Vue.http.delete(endpoint);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./groups/service/groups_service.js","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('loading-icon',{staticClass:\"loading-animation prepend-top-20\",attrs:{\"size\":\"2\",\"label\":_vm.s__('GroupsTree|Loading groups')}}):_vm._e(),_vm._v(\" \"),(!_vm.isLoading)?_c('groups-component',{attrs:{\"groups\":_vm.groups,\"search-empty\":_vm.isSearchEmpty,\"search-empty-message\":_vm.searchEmptyMessage,\"page-info\":_vm.pageInfo}}):_vm._e(),_vm._v(\" \"),(_vm.showModal)?_c('modal',{attrs:{\"kind\":\"warning\",\"primary-button-label\":_vm.__('Leave'),\"title\":_vm.__('Are you sure?'),\"text\":_vm.groupLeaveConfirmationMessage},on:{\"cancel\":_vm.hideLeaveGroupModal,\"submit\":_vm.leaveGroup}}):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-43c569e6\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/app.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./app.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./app.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-43c569e6\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./app.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/app.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/group_folder.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"content-list group-list-tree\"},[_vm._l((_vm.groups),function(group,index){return _c('group-item',{key:index,attrs:{\"group\":group,\"parent-group\":_vm.parentGroup}})}),_vm._v(\" \"),(_vm.hasMoreChildren)?_c('li',{staticClass:\"group-row\"},[_c('a',{staticClass:\"group-row-contents has-more-items\",attrs:{\"href\":_vm.parentGroup.relativePath}},[_c('i',{staticClass:\"fa fa-external-link\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n \"+_vm._s(_vm.moreChildrenStats)+\"\\n \")])]):_vm._e()],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6c373d29\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/group_folder.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./group_folder.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./group_folder.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6c373d29\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./group_folder.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/group_folder.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/item_caret.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"folder-caret\"},[_c('icon',{attrs:{\"size\":12,\"name\":_vm.iconClass}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0a988179\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_caret.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_caret.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_caret.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0a988179\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./item_caret.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/item_caret.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/item_type_icon.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"item-type-icon\"},[_c('icon',{attrs:{\"name\":_vm.iconClass}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f517bb3e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_type_icon.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_type_icon.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_type_icon.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f517bb3e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./item_type_icon.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/item_type_icon.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/item_stats_value.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],class:_vm.cssClass,attrs:{\"data-container\":\"body\",\"data-placement\":_vm.tooltipPlacement,\"title\":_vm.title}},[_c('icon',{attrs:{\"name\":_vm.iconName}}),_vm._v(\" \"),(_vm.isValuePresent)?_c('span',{staticClass:\"stat-value\"},[_vm._v(\"\\n \"+_vm._s(_vm.value)+\"\\n \")]):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-17f8081d\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_stats_value.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_stats_value.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_stats_value.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-17f8081d\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./item_stats_value.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/item_stats_value.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/item_stats.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"stats\"},[(_vm.isGroup)?_c('item-stats-value',{attrs:{\"css-class\":\"number-subgroups\",\"icon-name\":\"folder\",\"title\":_vm.__('Subgroups'),\"value\":_vm.item.subgroupCount}}):_vm._e(),_vm._v(\" \"),(_vm.isGroup)?_c('item-stats-value',{attrs:{\"css-class\":\"number-projects\",\"icon-name\":\"bookmark\",\"title\":_vm.__('Projects'),\"value\":_vm.item.projectCount}}):_vm._e(),_vm._v(\" \"),(_vm.isGroup)?_c('item-stats-value',{attrs:{\"css-class\":\"number-users\",\"icon-name\":\"users\",\"title\":_vm.__('Members'),\"value\":_vm.item.memberCount}}):_vm._e(),_vm._v(\" \"),(_vm.isProject)?_c('item-stats-value',{attrs:{\"css-class\":\"project-stars\",\"icon-name\":\"star\",\"value\":_vm.item.starCount}}):_vm._e(),_vm._v(\" \"),_c('item-stats-value',{attrs:{\"css-class\":\"item-visibility\",\"tooltip-placement\":\"left\",\"icon-name\":_vm.visibilityIcon,\"title\":_vm.visibilityTooltip}}),_vm._v(\" \"),(_vm.isProject)?_c('div',{staticClass:\"last-updated\"},[_c('time-ago-tooltip',{attrs:{\"tooltip-placement\":\"bottom\",\"time\":_vm.item.updatedAt}})],1):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-414ecde0\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_stats.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_stats.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_stats.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-414ecde0\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./item_stats.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/item_stats.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/item_actions.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"controls\"},[(_vm.group.canEdit)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"edit-group btn no-expand\",attrs:{\"href\":_vm.group.editPath,\"title\":_vm.editBtnTitle,\"aria-label\":_vm.editBtnTitle,\"data-container\":\"body\",\"data-placement\":\"bottom\"}},[_c('icon',{attrs:{\"name\":\"settings\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.group.canLeave)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"leave-group btn no-expand\",attrs:{\"href\":_vm.group.leavePath,\"title\":_vm.leaveBtnTitle,\"aria-label\":_vm.leaveBtnTitle,\"data-container\":\"body\",\"data-placement\":\"bottom\"},on:{\"click\":function($event){$event.preventDefault();_vm.onLeaveGroup($event)}}},[_c('icon',{attrs:{\"name\":\"leave\"}})],1):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2a9b1003\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/item_actions.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_actions.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./item_actions.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2a9b1003\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./item_actions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/item_actions.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// groups/components/group_item.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"group-row\",class:_vm.rowClass,attrs:{\"id\":_vm.groupDomId},on:{\"click\":function($event){$event.stopPropagation();_vm.onClickRowGroup($event)}}},[_c('div',{staticClass:\"group-row-contents\",class:{ 'project-row-contents': !_vm.isGroup }},[(_vm.isGroup)?_c('item-actions',{attrs:{\"group\":_vm.group,\"parent-group\":_vm.parentGroup}}):_vm._e(),_vm._v(\" \"),_c('item-stats',{attrs:{\"item\":_vm.group}}),_vm._v(\" \"),_c('div',{staticClass:\"folder-toggle-wrap\"},[_c('item-caret',{attrs:{\"is-group-open\":_vm.group.isOpen}}),_vm._v(\" \"),_c('item-type-icon',{attrs:{\"item-type\":_vm.group.type,\"is-group-open\":_vm.group.isOpen}})],1),_vm._v(\" \"),_c('div',{staticClass:\"avatar-container prepend-top-8 prepend-left-5 s24 hidden-xs\",class:{ 'content-loading': _vm.group.isChildrenLoading }},[_c('a',{staticClass:\"no-expand\",attrs:{\"href\":_vm.group.relativePath}},[(_vm.hasAvatar)?_c('img',{staticClass:\"avatar s24\",attrs:{\"src\":_vm.group.avatarUrl}}):_c('identicon',{attrs:{\"size-class\":\"s24\",\"entity-id\":_vm.group.id,\"entity-name\":_vm.group.name}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"title namespace-title\"},[_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"no-expand\",attrs:{\"href\":_vm.group.relativePath,\"title\":_vm.group.fullName,\"data-placement\":\"bottom\"}},[_vm._v(_vm._s(// ending bracket must be by closing tag to prevent\n // link hover text-decoration from over-extending\n _vm.group.name))]),_vm._v(\" \"),(_vm.group.permission)?_c('span',{staticClass:\"user-access-role\"},[_vm._v(\"\\n \"+_vm._s(_vm.group.permission)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.group.description)?_c('div',{staticClass:\"description\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.group.description)}})]):_vm._e()],1),_vm._v(\" \"),(_vm.group.isOpen && _vm.hasChildren)?_c('group-folder',{attrs:{\"parent-group\":_vm.group,\"groups\":_vm.group.children}}):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4e680b05\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./groups/components/group_item.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./group_item.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./group_item.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4e680b05\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./group_item.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./groups/components/group_item.vue\n// module id = null\n// module chunks = ","import Vue from 'vue';\nimport Translate from '../vue_shared/translate';\nimport GroupFilterableList from './groups_filterable_list';\nimport GroupsStore from './store/groups_store';\nimport GroupsService from './service/groups_service';\n\nimport groupsApp from './components/app.vue';\nimport groupFolderComponent from './components/group_folder.vue';\nimport groupItemComponent from './components/group_item.vue';\n\nVue.use(Translate);\n\nexport default () => {\n const el = document.getElementById('js-groups-tree');\n\n // Don't do anything if element doesn't exist (No groups)\n // This is for when the user enters directly to the page via URL\n if (!el) {\n return;\n }\n\n Vue.component('group-folder', groupFolderComponent);\n Vue.component('group-item', groupItemComponent);\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n components: {\n groupsApp,\n },\n data() {\n const dataset = this.$options.el.dataset;\n const hideProjects = dataset.hideProjects === 'true';\n const store = new GroupsStore(hideProjects);\n const service = new GroupsService(dataset.endpoint);\n\n return {\n store,\n service,\n hideProjects,\n loading: true,\n };\n },\n beforeMount() {\n const dataset = this.$options.el.dataset;\n let groupFilterList = null;\n const form = document.querySelector(dataset.formSel);\n const filter = document.querySelector(dataset.filterSel);\n const holder = document.querySelector(dataset.holderSel);\n\n const opts = {\n form,\n filter,\n holder,\n filterEndpoint: dataset.endpoint,\n pagePath: dataset.path,\n dropdownSel: dataset.dropdownSel,\n filterInputField: 'filter',\n };\n\n groupFilterList = new GroupFilterableList(opts);\n groupFilterList.initSearch();\n },\n render(createElement) {\n return createElement('groups-app', {\n props: {\n store: this.store,\n service: this.service,\n hideProjects: this.hideProjects,\n },\n });\n },\n });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./groups/index.js","import FilterableList from './filterable_list';\n\n/**\n * Makes search request for groups when user types a value in the search input.\n * Updates the html content of the page with the received one.\n */\nexport default class GroupsList {\n constructor() {\n const form = document.querySelector('form#group-filter-form');\n const filter = document.querySelector('.js-groups-list-filter');\n const holder = document.querySelector('.js-groups-list-holder');\n\n if (form && filter && holder) {\n const list = new FilterableList(form, filter, holder);\n list.initSearch();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./groups_list.js","import Cookies from 'js-cookie';\n\nclass Landing {\n constructor(landingElement, dismissButton, cookieName) {\n this.landingElement = landingElement;\n this.cookieName = cookieName;\n this.dismissButton = dismissButton;\n this.eventWrapper = {};\n }\n\n toggle() {\n const isDismissed = this.isDismissed();\n\n this.landingElement.classList.toggle('hidden', isDismissed);\n if (!isDismissed) this.addEvents();\n }\n\n addEvents() {\n this.eventWrapper.dismissLanding = this.dismissLanding.bind(this);\n this.dismissButton.addEventListener('click', this.eventWrapper.dismissLanding);\n }\n\n removeEvents() {\n this.dismissButton.removeEventListener('click', this.eventWrapper.dismissLanding);\n }\n\n dismissLanding() {\n this.landingElement.classList.add('hidden');\n Cookies.set(this.cookieName, 'true', { expires: 365 });\n }\n\n isDismissed() {\n return Cookies.get(this.cookieName) === 'true';\n }\n}\n\nexport default Landing;\n\n\n\n// WEBPACK FOOTER //\n// ./landing.js","import GroupsList from '~/groups_list';\nimport Landing from '~/landing';\nimport initGroupsList from '../../../groups';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new GroupsList(); // eslint-disable-line no-new\n initGroupsList();\n const landingElement = document.querySelector('.js-explore-groups-landing');\n if (!landingElement) return;\n const exploreGroupsLanding = new Landing(\n landingElement,\n landingElement.querySelector('.dismiss-button'),\n 'explore_groups_landing_dismissed',\n );\n exploreGroupsLanding.toggle();\n});\n\n\n\n// WEBPACK FOOTER //\n// ./pages/explore/groups/index.js","\n\n\n\n\n\n// WEBPACK FOOTER //\n// vue_shared/components/icon.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:[_vm.iconSizeClass, _vm.cssClasses],attrs:{\"width\":_vm.width,\"height\":_vm.height,\"x\":_vm.x,\"y\":_vm.y}},[_c('use',_vm._b({},'use',{ 'xlink:href':_vm.spriteHref },false))])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-43441268\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/icon.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./icon.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./icon.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-43441268\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./icon.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./vue_shared/components/icon.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// vue_shared/components/modal.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-open\"},[_c('div',{staticClass:\"modal\",class:_vm.id ? '' : 'show',attrs:{\"id\":_vm.id,\"role\":\"dialog\",\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"modal-dialog\",class:_vm.modalDialogClass,attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\",[_c('h4',{staticClass:\"modal-title pull-left\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"close pull-right\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"},on:{\"click\":function($event){_vm.emitCancel($event)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])])],2),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"body\",[_c('p',[_vm._v(_vm._s(_vm.text))])],{text:_vm.text})],2),_vm._v(\" \"),(!_vm.hideFooter)?_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn\",class:_vm.btnCancelKindClass,attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.emitCancel($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.closeButtonLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.secondaryButtonLabel)?_vm._t(\"secondary-button\",[(_vm.secondaryButtonLabel)?_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"\\n \"+_vm._s(_vm.secondaryButtonLabel)+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.primaryButtonLabel)?_c('button',{staticClass:\"btn js-primary-button\",class:_vm.btnKindClass,attrs:{\"type\":\"button\",\"disabled\":_vm.submitDisabled,\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.emitSubmit($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.primaryButtonLabel)+\"\\n \")]):_vm._e()],2):_vm._e()])])]),_vm._v(\" \"),(!_vm.id)?_c('div',{staticClass:\"modal-backdrop fade in\"}):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-8e18618c\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/modal.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8e18618c\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./vue_shared/components/modal.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n// WEBPACK FOOTER //\n// vue_shared/components/table_pagination.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showPagination)?_c('div',{staticClass:\"gl-pagination\"},[_c('ul',{staticClass:\"pagination clearfix\"},_vm._l((_vm.getItems),function(item,index){return _c('li',{key:index,class:{\n page: item.page,\n 'js-previous-button': item.prev,\n 'js-next-button': item.next,\n 'js-last-button': item.last,\n 'js-first-button': item.first,\n separator: item.separator,\n active: item.active,\n disabled: item.disabled\n }},[_c('a',{on:{\"click\":function($event){$event.preventDefault();_vm.changePage(item.title, item.disabled)}}},[_vm._v(\"\\n \"+_vm._s(item.title)+\"\\n \")])])}))]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f62ca93a\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/table_pagination.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./table_pagination.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./table_pagination.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f62ca93a\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./table_pagination.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./vue_shared/components/table_pagination.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n// WEBPACK FOOTER //\n// vue_shared/components/time_ago_tooltip.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('time',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],class:_vm.cssClass,attrs:{\"title\":_vm.tooltipTitle(_vm.time),\"data-placement\":_vm.tooltipPlacement,\"data-container\":\"body\"}},[_vm._v(\"\\n \"+_vm._s(_vm.timeFormated(_vm.time))+\"\\n\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }\n\n\n//////////////////\n// WEBPACK FOOTER\n// /opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-202207e1\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!/opt/gitlab/embedded/service/gitlab-rails/node_modules/vue-loader/lib/selector.js?type=template&index=0!./vue_shared/components/time_ago_tooltip.vue\n// module id = null\n// module chunks = ","/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./time_ago_tooltip.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./time_ago_tooltip.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-202207e1\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./time_ago_tooltip.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./vue_shared/components/time_ago_tooltip.vue\n// module id = null\n// module chunks = ","export default {\n bind(el) {\n $(el).tooltip();\n },\n\n componentUpdated(el) {\n $(el).tooltip('fixTitle');\n },\n\n unbind(el) {\n $(el).tooltip('destroy');\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./vue_shared/directives/tooltip.js","import { formatDate, getTimeago } from '../../lib/utils/datetime_utility';\n\n/**\n * Mixin with time ago methods used in some vue components\n */\nexport default {\n methods: {\n timeFormated(time) {\n const timeago = getTimeago();\n\n return timeago.format(time);\n },\n\n tooltipTitle(time) {\n return formatDate(time);\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./vue_shared/mixins/timeago.js"],"sourceRoot":""}