{"version":3,"sources":["webpack:///./pages/explore/projects/index.js","webpack:///./projects/filtered_search_and_sort/constants.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_token.js","webpack:///./access_level/constants.js","webpack:///projects/filtered_search_and_sort/components/filtered_search_and_sort.vue","webpack:///./projects/filtered_search_and_sort/components/filtered_search_and_sort.vue?78c1","webpack:///./projects/filtered_search_and_sort/components/filtered_search_and_sort.vue?73fc","webpack:///./projects/filtered_search_and_sort/components/filtered_search_and_sort.vue","webpack:///./projects/filtered_search_and_sort/index.js"],"names":["initProjectsFilteredSearchAndSort","sortEventName","filterEventName","SORT_OPTION_NAME","value","text","__","SORT_OPTION_CREATED","SORT_OPTION_UPDATED","SORT_OPTION_STARS","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","FILTERED_SEARCH_TERM_KEY","FILTERED_SEARCH_NAMESPACE","SORT_OPTIONS","DEFAULT_OPERATORS","description","default","__vue_script__","name","__v_skip","components","GlToken","GlFilteredSearchTokenSegment","inheritAttrs","props","availableTokens","type","Array","required","config","Object","active","Boolean","multiSelectValues","operator","data","showFriendlyText","cursorPosition","String","validator","includes","viewOnly","dataSegmentInputAttributes","activeSegment","tokenValue","this","intendedCursorPosition","computed","operators","_this$tokenValue$data","length","tokenEmpty","isSegmentActive","filter","token","map","find","op","mousedown","stopMousedownOnCloseButton","close","destroyByClose","segments","SEGMENT_TITLE","SEGMENT_DATA","SEGMENT_OPERATOR","watch","deep","newValue","$emit","oldValue","immediate","tokenIsActive","activateSegment","multiSelect","methods","segment","title","newType","newTokenConfig","_ref","isCompatible","dataType","$nextTick","evt","_ref2","inputValue","suggestedValue","applySuggestion","key","potentialValue","_ref3","startsWith","preventDefault","$options","activateDataSegment","event","target","closest","__vue_component__","render","_vm","_h","$createElement","_c","_self","staticClass","class","attrs","availableTokensWithSelf","on","$event","replaceToken","activateNextOperatorSegment","scopedSlots","_u","fn","ref","getAdditionalSegmentClasses","_v","_s","handleOperatorKeydown","replaceWithTermIfEmpty","activatePreviousTitleSegment","activateNextDataSegment","operatorDescription","proxy","option","_e","model","callback","$$v","$set","expression","options","handleComplete","activatePreviousOperatorSegment","scope","_t","_g","eventListeners","listeners","cssClasses","assign","staticRenderFns","undefined","ACCESS_LEVEL_NO_ACCESS_INTEGER","ACCESS_LEVEL_GUEST_INTEGER","ACCESS_LEVEL_REPORTER_INTEGER","ACCESS_LEVEL_DEVELOPER_INTEGER","ACCESS_LEVEL_MAINTAINER_INTEGER","ACCESS_LEVEL_OWNER_INTEGER","ACCESS_LEVEL_ADMIN_INTEGER","ACCESS_LEVELS_INTEGER_TO_STRING","ACCESS_LEVEL_NO_ACCESS","ACCESS_LEVEL_MINIMAL_ACCESS","ACCESS_LEVEL_GUEST","ACCESS_LEVEL_REPORTER","ACCESS_LEVEL_DEVELOPER","ACCESS_LEVEL_MAINTAINER","ACCESS_LEVEL_OWNER","BASE_ROLES","accessLevel","occupiesSeat","s__","ACCESS_LEVEL_LABELS","trackingMixin","InternalEvents","mixin","filteredSearch","namespace","recentSearchesStorageKey","RECENT_SEARCHES_STORAGE_KEY_PROJECTS","searchTermKey","FilteredSearchAndSort","mixins","inject","filteredSearchTokens","icon","GlFilteredSearchToken","unique","OPERATORS_IS","programmingLanguages","id","toString","queryAsObject","queryToObject","document","location","search","queryAsObjectWithoutPagination","page","sortByQuery","_this$queryAsObject","sort","sortBy","initialSort","_this$queryAsObject2","sortOptions","pathsToExcludeSortOn","window","pathname","activeSortOption","_this","sortItem","isAscending","endsWith","visitUrlWithQueryObject","queryObject","visitUrl","objectToQuery","onSortDirectionChange","trackEvent","label","onSortByChange","onFilter","filtersQuery","archived","personal","el","getElementById","dataset","appData","convertObjectPropsToCamelCase","JSON","parse","Vue","provide","createElement"],"mappings":"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","file":"pages.explore.projects.3911b060.chunk.js","sourcesContent":["import { initProjectsFilteredSearchAndSort } from '~/projects/filtered_search_and_sort';\n\ninitProjectsFilteredSearchAndSort({\n sortEventName: 'use_sort_projects_explore',\n filterEventName: 'use_filter_bar_projects_explore',\n});\n","import { __ } from '~/locale';\n\nexport const SORT_OPTION_NAME = {\n value: 'name',\n text: __('Name'),\n};\n\nexport const SORT_OPTION_CREATED = {\n value: 'created',\n text: __('Created'),\n};\n\nexport const SORT_OPTION_UPDATED = {\n value: 'latest_activity',\n text: __('Updated'),\n};\n\nexport const SORT_OPTION_STARS = {\n value: 'stars',\n text: __('Stars'),\n};\n\nexport const SORT_DIRECTION_ASC = 'asc';\nexport const SORT_DIRECTION_DESC = 'desc';\n\nexport const FILTERED_SEARCH_TERM_KEY = 'name';\nexport const FILTERED_SEARCH_NAMESPACE = 'explore';\nexport const SORT_OPTIONS = [\n SORT_OPTION_NAME,\n SORT_OPTION_CREATED,\n SORT_OPTION_UPDATED,\n SORT_OPTION_STARS,\n];\n","import cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport GlToken from '../token/token';\nimport { stopEvent } from '../../../utils/utils';\nimport GlFilteredSearchTokenSegment from './filtered_search_token_segment';\nimport { tokenToOption, createTerm, TOKEN_CLOSE_SELECTOR } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst SEGMENT_TITLE = 'TYPE';\nconst SEGMENT_OPERATOR = 'OPERATOR';\nconst SEGMENT_DATA = 'DATA';\nconst DEFAULT_OPERATORS = [{\n value: '=',\n description: 'is',\n default: true\n}, {\n value: '!=',\n description: 'is not'\n}];\nvar script = {\n name: 'GlFilteredSearchToken',\n // FIXME: temporary workaround to ensure compatibility with @vue/compat\n __v_skip: true,\n components: {\n GlToken,\n GlFilteredSearchTokenSegment\n },\n inheritAttrs: false,\n props: {\n availableTokens: {\n type: Array,\n required: false,\n default: () => []\n },\n /**\n * Token configuration with available operators and options.\n */\n config: {\n type: Object,\n required: false,\n default: () => ({})\n },\n /**\n * Determines if the token is being edited or not.\n */\n active: {\n type: Boolean,\n required: false,\n default: false\n },\n multiSelectValues: {\n type: Array,\n required: false,\n default: () => []\n },\n /**\n * Current token value.\n */\n value: {\n type: Object,\n required: false,\n default: () => ({\n operator: '',\n data: ''\n })\n },\n /**\n * Display operators' descriptions instead of their values (e.g., \"is\" instead of \"=\").\n */\n showFriendlyText: {\n type: Boolean,\n required: false,\n default: false\n },\n cursorPosition: {\n type: String,\n required: false,\n default: 'end',\n validator: value => ['start', 'end'].includes(value)\n },\n viewOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n dataSegmentInputAttributes: {\n type: Object,\n required: false,\n default: () => ({})\n }\n },\n data() {\n return {\n activeSegment: null,\n tokenValue: cloneDeep(this.value),\n intendedCursorPosition: this.cursorPosition\n };\n },\n computed: {\n operators() {\n return this.config.operators || DEFAULT_OPERATORS;\n },\n tokenEmpty() {\n var _this$tokenValue$data;\n return ((_this$tokenValue$data = this.tokenValue.data) === null || _this$tokenValue$data === void 0 ? void 0 : _this$tokenValue$data.length) === 0;\n },\n hasDataOrDataSegmentIsCurrentlyActive() {\n const hasData = !this.tokenEmpty;\n return hasData || this.isSegmentActive(SEGMENT_DATA);\n },\n availableTokensWithSelf() {\n return [this.config, ...this.availableTokens.filter(token => token !== this.config)].map(\n // eslint-disable-next-line unicorn/no-array-callback-reference\n tokenToOption);\n },\n operatorDescription() {\n const operator = this.operators.find(op => op.value === this.tokenValue.operator);\n return this.showFriendlyText ? operator === null || operator === void 0 ? void 0 : operator.description : operator === null || operator === void 0 ? void 0 : operator.value;\n },\n eventListeners() {\n return this.viewOnly ? {} : {\n mousedown: this.stopMousedownOnCloseButton,\n close: this.destroyByClose\n };\n }\n },\n segments: {\n SEGMENT_TITLE,\n SEGMENT_DATA,\n SEGMENT_OPERATOR\n },\n watch: {\n tokenValue: {\n deep: true,\n handler(newValue) {\n /**\n * Emitted when the token changes its value.\n *\n * @event input\n * @type {object} dataObj Object containing the update value.\n */\n this.$emit('input', newValue);\n }\n },\n value: {\n handler(newValue, oldValue) {\n if (isEqual(newValue === null || newValue === void 0 ? void 0 : newValue.data, oldValue === null || oldValue === void 0 ? void 0 : oldValue.data) && (newValue === null || newValue === void 0 ? void 0 : newValue.operator) === (oldValue === null || oldValue === void 0 ? void 0 : oldValue.operator)) {\n return;\n }\n this.tokenValue = cloneDeep(newValue);\n }\n },\n active: {\n immediate: true,\n handler(tokenIsActive) {\n if (tokenIsActive) {\n this.intendedCursorPosition = this.cursorPosition;\n if (!this.activeSegment) {\n this.activateSegment(this.tokenEmpty ? SEGMENT_OPERATOR : SEGMENT_DATA);\n }\n } else {\n this.activeSegment = null;\n\n // restore multi select values if we have them\n // otherwise destroy the token\n if (this.config.multiSelect) {\n this.$emit('input', {\n ...this.tokenValue,\n data: this.multiSelectValues || ''\n });\n }\n if (this.tokenEmpty && this.multiSelectValues.length === 0) {\n /**\n * Emitted when token is about to be destroyed.\n *\n * @event destroy\n */\n this.$emit('destroy');\n }\n }\n }\n }\n },\n created() {\n if (!('operator' in this.tokenValue)) {\n if (this.operators.length === 1) {\n const operator = this.operators[0].value;\n this.$emit('input', {\n ...this.tokenValue,\n operator\n });\n this.activeSegment = SEGMENT_DATA;\n } else {\n this.$emit('input', {\n ...this.tokenValue,\n operator: ''\n });\n }\n }\n },\n methods: {\n activateSegment(segment) {\n if (this.viewOnly) return;\n this.activeSegment = segment;\n if (!this.active) {\n /**\n * Emitted when this term token is clicked.\n *\n * @event activate\n */\n this.$emit('activate');\n }\n },\n getAdditionalSegmentClasses(segment) {\n if (this.viewOnly) {\n return 'gl-cursor-text';\n }\n return {\n 'gl-cursor-pointer': !this.isSegmentActive(segment)\n };\n },\n isSegmentActive(segment) {\n return this.active && this.activeSegment === segment;\n },\n replaceWithTermIfEmpty() {\n if (this.tokenValue.operator === '' && this.tokenEmpty) {\n /**\n * Emitted when this token is converted to another type\n * @property {object} token Replacement token configuration\n */\n this.$emit('replace', createTerm(this.config.title));\n }\n },\n replaceToken(newType) {\n const newTokenConfig = this.availableTokens.find(_ref => {\n let {\n type\n } = _ref;\n return type === newType;\n });\n if (newTokenConfig === this.config) {\n this.$nextTick(() => {\n /**\n * Emitted when this term token will lose its focus.\n *\n * @event deactivate\n */\n this.$emit('deactivate');\n });\n return;\n }\n if (newTokenConfig) {\n const isCompatible = this.config.dataType && this.config.dataType === newTokenConfig.dataType;\n this.$emit('replace', {\n type: newTokenConfig.type,\n value: isCompatible ? this.tokenValue : {\n data: ''\n }\n });\n }\n },\n handleOperatorKeydown(evt, _ref2) {\n let {\n inputValue,\n suggestedValue,\n applySuggestion\n } = _ref2;\n const {\n key\n } = evt;\n if (key === ' ' || key === 'Spacebar') {\n applySuggestion(suggestedValue);\n return;\n }\n const potentialValue = `${inputValue}${key}`;\n if (key.length === 1 && !this.operators.find(_ref3 => {\n let {\n value\n } = _ref3;\n return value.startsWith(potentialValue);\n })) {\n if (this.tokenEmpty) {\n applySuggestion(suggestedValue);\n } else {\n evt.preventDefault();\n }\n }\n },\n activateDataSegment() {\n if (this.config.multiSelect) {\n this.$emit('input', {\n ...this.tokenValue,\n data: ''\n });\n }\n this.activateSegment(this.$options.segments.SEGMENT_DATA);\n },\n activatePreviousOperatorSegment() {\n this.activateSegment(this.$options.segments.SEGMENT_OPERATOR);\n this.intendedCursorPosition = 'end';\n },\n activatePreviousTitleSegment() {\n this.activateSegment(this.$options.segments.SEGMENT_TITLE);\n this.intendedCursorPosition = 'end';\n },\n activateNextDataSegment() {\n this.activateDataSegment();\n this.intendedCursorPosition = 'start';\n },\n activateNextOperatorSegment() {\n this.activateSegment(this.$options.segments.SEGMENT_OPERATOR);\n this.intendedCursorPosition = 'start';\n },\n handleComplete(value) {\n /**\n * Emitted when the token entry has been completed.\n *\n * @event complete\n */\n this.$emit('complete', value);\n },\n stopMousedownOnCloseButton(event) {\n if (event.target.closest(TOKEN_CLOSE_SELECTOR)) {\n stopEvent(event);\n }\n },\n destroyByClose() {\n this.$emit('destroy');\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-filtered-search-token\",class:{\n 'gl-filtered-search-token-active': _vm.active,\n 'gl-filtered-search-token-hover': !_vm.viewOnly,\n 'gl-cursor-default': _vm.viewOnly,\n },attrs:{\"data-testid\":\"filtered-search-token\"}},[_c('gl-filtered-search-token-segment',{key:\"title-segment\",attrs:{\"value\":_vm.config.title,\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_TITLE),\"cursor-position\":_vm.intendedCursorPosition,\"options\":_vm.availableTokensWithSelf,\"view-only\":_vm.viewOnly},on:{\"activate\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_TITLE)},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"complete\":_vm.replaceToken,\"backspace\":function($event){return _vm.$emit('destroy')},\"submit\":function($event){return _vm.$emit('submit')},\"previous\":function($event){return _vm.$emit('previous')},\"next\":_vm.activateNextOperatorSegment},scopedSlots:_vm._u([{key:\"view\",fn:function(ref){\n var inputValue = ref.inputValue;\nreturn [_c('gl-token',{staticClass:\"gl-filtered-search-token-type\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_TITLE),attrs:{\"view-only\":\"\"}},[_vm._v(\"\\n \"+_vm._s(inputValue)+\"\\n \")])]}}])}),_vm._v(\" \"),_c('gl-filtered-search-token-segment',{key:\"operator-segment\",attrs:{\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_OPERATOR),\"cursor-position\":_vm.intendedCursorPosition,\"options\":_vm.operators,\"option-text-field\":\"value\",\"custom-input-keydown-handler\":_vm.handleOperatorKeydown,\"view-only\":_vm.viewOnly},on:{\"activate\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_OPERATOR)},\"backspace\":_vm.replaceWithTermIfEmpty,\"complete\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_DATA)},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"previous\":_vm.activatePreviousTitleSegment,\"next\":_vm.activateNextDataSegment},scopedSlots:_vm._u([{key:\"view\",fn:function(){return [_c('gl-token',{staticClass:\"gl-filtered-search-token-operator\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_OPERATOR),attrs:{\"variant\":\"search-value\",\"view-only\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.operatorDescription)+\"\\n \")])]},proxy:true},{key:\"option\",fn:function(ref){\n var option = ref.option;\nreturn [_c('div',{staticClass:\"gl-flex\"},[_vm._v(\"\\n \"+_vm._s(_vm.showFriendlyText ? option.description : option.value)+\"\\n \"),(option.description)?_c('span',{staticClass:\"gl-filtered-search-token-operator-description\"},[_vm._v(\"\\n \"+_vm._s(_vm.showFriendlyText ? option.value : option.description)+\"\\n \")]):_vm._e()])]}}]),model:{value:(_vm.tokenValue.operator),callback:function ($$v) {_vm.$set(_vm.tokenValue, \"operator\", $$v);},expression:\"tokenValue.operator\"}}),_vm._v(\" \"),(_vm.hasDataOrDataSegmentIsCurrentlyActive)?_c('gl-filtered-search-token-segment',{key:\"data-segment\",attrs:{\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_DATA),\"cursor-position\":_vm.intendedCursorPosition,\"multi-select\":_vm.config.multiSelect,\"options\":_vm.config.options,\"view-only\":_vm.viewOnly,\"search-input-attributes\":_vm.dataSegmentInputAttributes},on:{\"activate\":_vm.activateDataSegment,\"backspace\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_OPERATOR)},\"complete\":_vm.handleComplete,\"select\":function($event){return _vm.$emit('select', $event)},\"submit\":function($event){return _vm.$emit('submit')},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"split\":function($event){return _vm.$emit('split', $event)},\"previous\":_vm.activatePreviousOperatorSegment,\"next\":function($event){return _vm.$emit('next')}},scopedSlots:_vm._u([{key:\"before-input\",fn:function(scope){return [_vm._t(\"before-data-segment-input\",null,null,scope)]}},{key:\"suggestions\",fn:function(){return [_vm._t(\"suggestions\")]},proxy:true},{key:\"view\",fn:function(ref){\n var inputValue = ref.inputValue;\nreturn [_vm._t(\"view-token\",function(){return [_c('gl-token',_vm._g({staticClass:\"gl-filtered-search-token-data\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_DATA),attrs:{\"variant\":\"search-value\",\"view-only\":_vm.viewOnly}},_vm.eventListeners),[_c('span',{staticClass:\"gl-filtered-search-token-data-content\"},[_vm._t(\"view\",function(){return [_vm._v(_vm._s(inputValue))]},null,{ inputValue: inputValue })],2)])]},null,{\n inputValue: inputValue,\n listeners: _vm.eventListeners,\n cssClasses: Object.assign({}, {'gl-filtered-search-token-data': true},\n _vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_DATA)),\n })]}}],null,true),model:{value:(_vm.tokenValue.data),callback:function ($$v) {_vm.$set(_vm.tokenValue, \"data\", $$v);},expression:\"tokenValue.data\"}}):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { __, s__ } from '~/locale';\n\n// Matches `lib/gitlab/access.rb`\nexport const ACCESS_LEVEL_NO_ACCESS_INTEGER = 0;\nexport const ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER = 5;\nexport const ACCESS_LEVEL_GUEST_INTEGER = 10;\nexport const ACCESS_LEVEL_REPORTER_INTEGER = 20;\nexport const ACCESS_LEVEL_DEVELOPER_INTEGER = 30;\nexport const ACCESS_LEVEL_MAINTAINER_INTEGER = 40;\nexport const ACCESS_LEVEL_OWNER_INTEGER = 50;\nexport const ACCESS_LEVEL_ADMIN_INTEGER = 60;\n\n// Matches `app/graphql/types/access_level_enum.rb`\nexport const ACCESS_LEVEL_NO_ACCESS_STRING = 'NO_ACCESS';\nexport const ACCESS_LEVEL_MINIMAL_ACCESS_STRING = 'MINIMAL_ACCESS';\nexport const ACCESS_LEVEL_GUEST_STRING = 'GUEST';\nexport const ACCESS_LEVEL_REPORTER_STRING = 'REPORTER';\nexport const ACCESS_LEVEL_DEVELOPER_STRING = 'DEVELOPER';\nexport const ACCESS_LEVEL_MAINTAINER_STRING = 'MAINTAINER';\nexport const ACCESS_LEVEL_OWNER_STRING = 'OWNER';\n\nexport const ACCESS_LEVELS_INTEGER_TO_STRING = {\n [ACCESS_LEVEL_NO_ACCESS_INTEGER]: ACCESS_LEVEL_NO_ACCESS_STRING,\n [ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER]: ACCESS_LEVEL_MINIMAL_ACCESS_STRING,\n [ACCESS_LEVEL_GUEST_INTEGER]: ACCESS_LEVEL_GUEST_STRING,\n [ACCESS_LEVEL_REPORTER_INTEGER]: ACCESS_LEVEL_REPORTER_STRING,\n [ACCESS_LEVEL_DEVELOPER_INTEGER]: ACCESS_LEVEL_DEVELOPER_STRING,\n [ACCESS_LEVEL_MAINTAINER_INTEGER]: ACCESS_LEVEL_MAINTAINER_STRING,\n [ACCESS_LEVEL_OWNER_INTEGER]: ACCESS_LEVEL_OWNER_STRING,\n};\n\nconst ACCESS_LEVEL_NO_ACCESS = __('No access');\nconst ACCESS_LEVEL_MINIMAL_ACCESS = __('Minimal Access');\nconst ACCESS_LEVEL_GUEST = __('Guest');\nconst ACCESS_LEVEL_REPORTER = __('Reporter');\nconst ACCESS_LEVEL_DEVELOPER = __('Developer');\nconst ACCESS_LEVEL_MAINTAINER = __('Maintainer');\nconst ACCESS_LEVEL_OWNER = __('Owner');\n\nexport const BASE_ROLES = [\n {\n value: 'MINIMAL_ACCESS',\n text: ACCESS_LEVEL_MINIMAL_ACCESS,\n accessLevel: ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER,\n occupiesSeat: false,\n description: s__(\n 'MemberRole|The Minimal Access role is for users who need the least amount of access into groups and projects. You can assign this role as a default, before giving a user another role with more permissions.',\n ),\n },\n {\n value: 'GUEST',\n text: ACCESS_LEVEL_GUEST,\n accessLevel: ACCESS_LEVEL_GUEST_INTEGER,\n occupiesSeat: false,\n description: s__(\n 'MemberRole|The Guest role is for users who need visibility into a project or group but should not have the ability to make changes, such as external stakeholders.',\n ),\n },\n {\n value: 'REPORTER',\n text: ACCESS_LEVEL_REPORTER,\n accessLevel: ACCESS_LEVEL_REPORTER_INTEGER,\n occupiesSeat: true,\n description: s__(\n 'MemberRole|The Reporter role is suitable for team members who need to stay informed about a project or group but do not actively contribute code.',\n ),\n },\n {\n value: 'DEVELOPER',\n text: ACCESS_LEVEL_DEVELOPER,\n accessLevel: ACCESS_LEVEL_DEVELOPER_INTEGER,\n occupiesSeat: true,\n description: s__(\n 'MemberRole|The Developer role strikes a balance between giving users the necessary access to contribute code while restricting sensitive administrative actions.',\n ),\n },\n {\n value: 'MAINTAINER',\n text: ACCESS_LEVEL_MAINTAINER,\n accessLevel: ACCESS_LEVEL_MAINTAINER_INTEGER,\n occupiesSeat: true,\n description: s__(\n 'MemberRole|The Maintainer role is primarily used for managing code reviews, approvals, and administrative settings for projects. This role can also manage project memberships.',\n ),\n },\n {\n value: 'OWNER',\n text: ACCESS_LEVEL_OWNER,\n accessLevel: ACCESS_LEVEL_OWNER_INTEGER,\n occupiesSeat: true,\n description: s__(\n 'MemberRole|The Owner role is normally assigned to the individual or team responsible for managing and maintaining the group or creating the project. This role has the highest level of administrative control, and can manage all aspects of the group or project, including managing other Owners.',\n ),\n },\n];\n\nexport const BASE_ROLES_WITHOUT_MINIMAL_ACCESS = BASE_ROLES.filter(\n ({ accessLevel }) => accessLevel !== ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER,\n);\n\nexport const ACCESS_LEVEL_LABELS = {\n [ACCESS_LEVEL_NO_ACCESS_INTEGER]: ACCESS_LEVEL_NO_ACCESS,\n [ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER]: ACCESS_LEVEL_MINIMAL_ACCESS,\n [ACCESS_LEVEL_GUEST_INTEGER]: ACCESS_LEVEL_GUEST,\n [ACCESS_LEVEL_REPORTER_INTEGER]: ACCESS_LEVEL_REPORTER,\n [ACCESS_LEVEL_DEVELOPER_INTEGER]: ACCESS_LEVEL_DEVELOPER,\n [ACCESS_LEVEL_MAINTAINER_INTEGER]: ACCESS_LEVEL_MAINTAINER,\n [ACCESS_LEVEL_OWNER_INTEGER]: ACCESS_LEVEL_OWNER,\n};\n","\n\n\n \n\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--11-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--11-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filtered_search_and_sort.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--11-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--11-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filtered_search_and_sort.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./filtered_search_and_sort.vue?vue&type=template&id=2273e4c2\"\nimport script from \"./filtered_search_and_sort.vue?vue&type=script&lang=js\"\nexport * from \"./filtered_search_and_sort.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('filtered-search-and-sort',{staticClass:\"gl-w-full\",attrs:{\"filtered-search-namespace\":_vm.$options.filteredSearch.namespace,\"filtered-search-tokens\":_vm.filteredSearchTokens,\"filtered-search-term-key\":_vm.$options.filteredSearch.searchTermKey,\"filtered-search-recent-searches-storage-key\":_vm.$options.filteredSearch.recentSearchesStorageKey,\"sort-options\":_vm.sortOptions,\"filtered-search-query\":_vm.queryAsObject,\"is-ascending\":_vm.isAscending,\"active-sort-option\":_vm.activeSortOption},on:{\"filter\":_vm.onFilter,\"sort-direction-change\":_vm.onSortDirectionChange,\"sort-by-change\":_vm.onSortByChange}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport FilteredSearchAndSort from './components/filtered_search_and_sort.vue';\n\nexport const initProjectsFilteredSearchAndSort = ({ sortEventName, filterEventName } = {}) => {\n const el = document.getElementById('js-projects-filtered-search-and-sort');\n\n if (!el) return false;\n\n const {\n dataset: { appData },\n } = el;\n\n const { initialSort, programmingLanguages, pathsToExcludeSortOn } = convertObjectPropsToCamelCase(\n JSON.parse(appData),\n );\n\n return new Vue({\n el,\n name: 'ProjectsFilteredSearchAndSortRoot',\n provide: {\n initialSort,\n programmingLanguages,\n pathsToExcludeSortOn,\n sortEventName,\n filterEventName,\n },\n render(createElement) {\n return createElement(FilteredSearchAndSort);\n },\n });\n};\n"],"sourceRoot":""}