{"version":3,"sources":["webpack:///./pages/groups/merge_requests/index.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js"],"names":["document","addEventListener","Object","_pages_search_init_filtered_search__WEBPACK_IMPORTED_MODULE_1__","page","_pages_constants__WEBPACK_IMPORTED_MODULE_2__","MERGE_REQUESTS","isGroupDecendent","_project_select__WEBPACK_IMPORTED_MODULE_0__","ProjectSelectComboButton","select","_classCallCheck","this","projectSelectInput","jquery_default","newItemBtn","resourceType","data","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","_this","siblings","on","e","openDropdown","getProjectFromLocalStorage","preventDefault","selectProject","accessor","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","event","currentTarget","select2","selectedProjectData","JSON","parse","val","projectMeta","url","name","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","project","attr","text","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","stringify","setItem","split","slice","projectSelect","each","i","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","minimumInputLength","query","finalCallback","projectsCallback","projects","results","callback","groupsCallback","groups","concat","api","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","order_by","membership","id","web_url","name_with_namespace","dropdownCssClass","project_select_combo_button","__webpack_require__","d","__webpack_exports__"],"mappings":"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","file":"pages.groups.merge_requests.126a4f76.chunk.js","sourcesContent":["import projectSelect from '~/project_select';\nimport initFilteredSearch from '~/pages/search/init_filtered_search';\nimport { FILTERED_SEARCH } from '~/pages/constants';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n initFilteredSearch({\n page: FILTERED_SEARCH.MERGE_REQUESTS,\n isGroupDecendent: true,\n });\n projectSelect();\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.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 = ['group', this.groupId, this.formattedText.localStorageItemType, 'recent-project'].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n $(event.currentTarget).siblings('.project-item-select').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(`选择一个项目来创建 ${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.split('_').join('-').slice(0, -1)}`;\n const presetTextSuffix = this.resourceType.split('_').join(' ').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\n","/* eslint-disable func-names, wrap-iife, no-var, comma-dangle, object-shorthand, one-var, one-var-declaration-per-line, no-else-return, quotes, max-len */\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\n placeholder = \"搜索项目\";\n if (this.includeGroups) {\n placeholder += \"或群组\";\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(_this.groupId, query.term, {\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n }, projectsCallback);\n } else {\n return Api.projects(query.term, {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n }, projectsCallback);\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 dropdownCssClass: \"ajax-project-dropdown\"\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n}\n"],"sourceRoot":""}