{"version":3,"sources":["webpack:///./pages/groups/merge_requests/index.js","webpack:///./pages/groups/index.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js"],"names":["__webpack_require__","r","__webpack_exports__","_project_select__WEBPACK_IMPORTED_MODULE_0__","_pages_search_init_filtered_search__WEBPACK_IMPORTED_MODULE_1__","_filtered_search_issuable_filtered_search_token_keys__WEBPACK_IMPORTED_MODULE_2__","_pages_constants__WEBPACK_IMPORTED_MODULE_3__","document","addEventListener","IssuableFilteredSearchTokenKeys","addExtraTokensForMergeRequests","initFilteredSearch","page","FILTERED_SEARCH","MERGE_REQUESTS","isGroupDecendent","filteredSearchTokenKeys","projectSelect","_dismissable_callout__WEBPACK_IMPORTED_MODULE_0__","_projects_gke_cluster_dropdowns__WEBPACK_IMPORTED_MODULE_1__","body","dataset","indexOf","initDismissableCallout","initGkeDropdowns","ProjectSelectComboButton","select","_classCallCheck","this","projectSelectInput","$","newItemBtn","resourceType","data","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","_this","siblings","on","e","openDropdown","getProjectFromLocalStorage","preventDefault","selectProject","AccessorUtilities","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","event","currentTarget","select2","selectedProjectData","JSON","parse","val","projectMeta","url","concat","name","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","project","attr","text","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","stringify","setItem","split","slice","each","i","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","withShared","undefined","includeProjectsInSubgroups","allowClear","minimumInputLength","query","finalCallback","projectsCallback","projects","results","callback","groupsCallback","groups","Api","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","with_shared","include_subgroups","order_by","membership","id","web_url","name_with_namespace","initSelection","el","then","_ref","dropdownCssClass","d"],"mappings":"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","file":"pages.groups.merge_requests.0de91e4a.chunk.js","sourcesContent":["import projectSelect from '~/project_select';\nimport initFilteredSearch from '~/pages/search/init_filtered_search';\nimport IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys';\nimport { FILTERED_SEARCH } from '~/pages/constants';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n IssuableFilteredSearchTokenKeys.addExtraTokensForMergeRequests();\n\n initFilteredSearch({\n page: FILTERED_SEARCH.MERGE_REQUESTS,\n isGroupDecendent: true,\n filteredSearchTokenKeys: IssuableFilteredSearchTokenKeys,\n });\n projectSelect();\n});\n","import initDismissableCallout from '~/dismissable_callout';\nimport initGkeDropdowns from '~/projects/gke_cluster_dropdowns';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const { page } = document.body.dataset;\n const newClusterViews = [\n 'groups:clusters:new',\n 'groups:clusters:create_gcp',\n 'groups:clusters:create_user',\n ];\n\n if (newClusterViews.indexOf(page) > -1) {\n initDismissableCallout('.gcp-signup-offer');\n initGkeDropdowns();\n }\n});\n","import $ from 'jquery';\nimport AccessorUtilities from './lib/utils/accessor';\n\nexport default class ProjectSelectComboButton {\n constructor(select) {\n this.projectSelectInput = $(select);\n this.newItemBtn = $('.new-project-item-link');\n this.resourceType = this.newItemBtn.data('type');\n this.resourceLabel = this.newItemBtn.data('label');\n this.formattedText = this.deriveTextVariants();\n this.groupId = this.projectSelectInput.data('groupId');\n this.bindEvents();\n this.initLocalStorage();\n }\n\n bindEvents() {\n this.projectSelectInput\n .siblings('.new-project-item-select-button')\n .on('click', e => this.openDropdown(e));\n\n this.newItemBtn.on('click', e => {\n if (!this.getProjectFromLocalStorage()) {\n e.preventDefault();\n this.openDropdown(e);\n }\n });\n\n this.projectSelectInput.on('change', () => this.selectProject());\n }\n\n initLocalStorage() {\n const localStorageIsSafe = AccessorUtilities.isLocalStorageAccessSafe();\n\n if (localStorageIsSafe) {\n this.localStorageKey = [\n 'group',\n this.groupId,\n this.formattedText.localStorageItemType,\n 'recent-project',\n ].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n $(event.currentTarget)\n .siblings('.project-item-select')\n .select2('open');\n }\n\n selectProject() {\n const selectedProjectData = JSON.parse(this.projectSelectInput.val());\n const projectUrl = `${selectedProjectData.url}/${this.projectSelectInput.data('relativePath')}`;\n const projectName = selectedProjectData.name;\n\n const projectMeta = {\n url: projectUrl,\n name: projectName,\n };\n\n this.setNewItemBtnAttributes(projectMeta);\n this.setProjectInLocalStorage(projectMeta);\n }\n\n setBtnTextFromLocalStorage() {\n const cachedProjectData = this.getProjectFromLocalStorage();\n\n this.setNewItemBtnAttributes(cachedProjectData);\n }\n\n setNewItemBtnAttributes(project) {\n if (project) {\n this.newItemBtn.attr('href', project.url);\n this.newItemBtn.text(`${this.formattedText.defaultTextPrefix} in ${project.name}`);\n } else {\n this.newItemBtn.text(`Select project to create ${this.formattedText.presetTextSuffix}`);\n }\n }\n\n getProjectFromLocalStorage() {\n const projectString = localStorage.getItem(this.localStorageKey);\n\n return JSON.parse(projectString);\n }\n\n setProjectInLocalStorage(projectMeta) {\n const projectString = JSON.stringify(projectMeta);\n\n localStorage.setItem(this.localStorageKey, projectString);\n }\n\n deriveTextVariants() {\n const defaultTextPrefix = this.resourceLabel;\n\n // the trailing slice call depluralizes each of these strings (e.g. new-issues -> new-issue)\n const localStorageItemType = `new-${this.resourceType\n .split('_')\n .join('-')\n .slice(0, -1)}`;\n const presetTextSuffix = this.resourceType\n .split('_')\n .join(' ')\n .slice(0, -1);\n\n return {\n localStorageItemType, // new-issue / new-merge-request\n defaultTextPrefix, // New issue / New merge request\n presetTextSuffix, // issue / merge request\n };\n }\n}\n","/* eslint-disable func-names, no-var, object-shorthand, one-var, no-else-return */\n\nimport $ from 'jquery';\nimport Api from './api';\nimport ProjectSelectComboButton from './project_select_combo_button';\n\nexport default function projectSelect() {\n $('.ajax-project-select').each(function(i, select) {\n var placeholder;\n const simpleFilter = $(select).data('simpleFilter') || false;\n this.groupId = $(select).data('groupId');\n this.includeGroups = $(select).data('includeGroups');\n this.allProjects = $(select).data('allProjects') || false;\n this.orderBy = $(select).data('orderBy') || 'id';\n this.withIssuesEnabled = $(select).data('withIssuesEnabled');\n this.withMergeRequestsEnabled = $(select).data('withMergeRequestsEnabled');\n this.withShared =\n $(select).data('withShared') === undefined ? true : $(select).data('withShared');\n this.includeProjectsInSubgroups = $(select).data('includeProjectsInSubgroups') || false;\n this.allowClear = $(select).data('allowClear') || false;\n\n placeholder = 'Search for project';\n if (this.includeGroups) {\n placeholder += ' or group';\n }\n\n $(select).select2({\n placeholder: placeholder,\n minimumInputLength: 0,\n query: (function(_this) {\n return function(query) {\n var finalCallback, projectsCallback;\n finalCallback = function(projects) {\n var data;\n data = {\n results: projects,\n };\n return query.callback(data);\n };\n if (_this.includeGroups) {\n projectsCallback = function(projects) {\n var groupsCallback;\n groupsCallback = function(groups) {\n var data;\n data = groups.concat(projects);\n return finalCallback(data);\n };\n return Api.groups(query.term, {}, groupsCallback);\n };\n } else {\n projectsCallback = finalCallback;\n }\n if (_this.groupId) {\n return Api.groupProjects(\n _this.groupId,\n query.term,\n {\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n with_shared: _this.withShared,\n include_subgroups: _this.includeProjectsInSubgroups,\n },\n projectsCallback,\n );\n } else {\n return Api.projects(\n query.term,\n {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n },\n projectsCallback,\n );\n }\n };\n })(this),\n id: function(project) {\n if (simpleFilter) return project.id;\n return JSON.stringify({\n name: project.name,\n url: project.web_url,\n });\n },\n text: function(project) {\n return project.name_with_namespace || project.name;\n },\n\n initSelection: function(el, callback) {\n return Api.project(el.val()).then(({ data }) => callback(data));\n },\n\n allowClear: this.allowClear,\n\n dropdownCssClass: 'ajax-project-dropdown',\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n}\n"],"sourceRoot":""}