{"version":3,"sources":["webpack:///./shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:///./pages/projects/index.js","webpack:///./ajax_loading_spinner.js","webpack:///./branches/branches_delete_modal.js","webpack:///./pages/projects/branches/index/index.js"],"names":["ShortcutsNavigation","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","mousetrap__WEBPACK_IMPORTED_MODULE_0___default","a","bind","_shortcuts_dashboard_navigation__WEBPACK_IMPORTED_MODULE_1__","enabledHelp","push","_shortcuts__WEBPACK_IMPORTED_MODULE_2__","ProjectSelectComboButton","select","projectSelectInput","jquery_default","newItemBtn","resourceType","data","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","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","order_by","with_issues_enabled","with_merge_requests_enabled","membership","id","web_url","name_with_namespace","dropdownCssClass","project_select_combo_button","__webpack_require__","d","__webpack_exports__","Project","$cloneOptions","jquery__WEBPACK_IMPORTED_MODULE_0___default","$projectCloneField","$cloneBtnText","selectedCloneOption","trim","length","$","addClass","$this","activeText","find","not","removeClass","toggleClass","initRefSwitcher","parents","submit","js_cookie__WEBPACK_IMPORTED_MODULE_1___default","set","remove","projectSelectDropdown","_project_select__WEBPACK_IMPORTED_MODULE_6__","changeProject","window","location","refListItem","document","createElement","refLink","href","$dropdown","selected","glDropdown","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_4__","get","params","ref","search","then","_ref","catch","_flash__WEBPACK_IMPORTED_MODULE_5__","_locale__WEBPACK_IMPORTED_MODULE_2__","selectable","filterable","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","header","className","textContent","link","dataset","appendChild","obj","$el","toggleLabel","clicked","options","$form","closest","$visit","shouldVisit","action","divider","indexOf","_lib_utils_url_utility__WEBPACK_IMPORTED_MODULE_3__","visitUrl","serialize","addEventListener","_project__WEBPACK_IMPORTED_MODULE_0__","_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_1__","$elements","AjaxLoadingSpinner","ajaxBeforeSend","ajaxComplete","target","setAttribute","iconElement","querySelector","originalIcon","match","icon","toggleLoadingIcon","off","removeAttribute","classList","toggle","MODAL_SELECTOR","branches_delete_modal","DeleteModal","branches_delete_modal_classCallCheck","$modal","$toggleBtns","$branchName","$confirmInput","$deleteBtn","$notMerged","setModalData","setDeleteDisabled","setDisableDeleteButton","branchData","branchName","deletePath","isMerged","updateModal","value","is","stopPropagation","ajax_loading_spinner","init"],"mappings":"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","file":"pages.projects.branches.index.afbb63f3.chunk.js","sourcesContent":["import Mousetrap from 'mousetrap';\nimport findAndFollowLink from './shortcuts_dashboard_navigation';\nimport Shortcuts from './shortcuts';\n\nexport default class ShortcutsNavigation extends Shortcuts {\n constructor() {\n super();\n\n Mousetrap.bind('g p', () => findAndFollowLink('.shortcuts-project'));\n Mousetrap.bind('g v', () => findAndFollowLink('.shortcuts-project-activity'));\n Mousetrap.bind('g f', () => findAndFollowLink('.shortcuts-tree'));\n Mousetrap.bind('g c', () => findAndFollowLink('.shortcuts-commits'));\n Mousetrap.bind('g j', () => findAndFollowLink('.shortcuts-builds'));\n Mousetrap.bind('g n', () => findAndFollowLink('.shortcuts-network'));\n Mousetrap.bind('g d', () => findAndFollowLink('.shortcuts-repository-charts'));\n Mousetrap.bind('g i', () => findAndFollowLink('.shortcuts-issues'));\n Mousetrap.bind('g b', () => findAndFollowLink('.shortcuts-issue-boards'));\n Mousetrap.bind('g m', () => findAndFollowLink('.shortcuts-merge_requests'));\n Mousetrap.bind('g w', () => findAndFollowLink('.shortcuts-wiki'));\n Mousetrap.bind('g s', () => findAndFollowLink('.shortcuts-snippets'));\n Mousetrap.bind('g k', () => findAndFollowLink('.shortcuts-kubernetes'));\n Mousetrap.bind('g e', () => findAndFollowLink('.shortcuts-environments'));\n Mousetrap.bind('i', () => findAndFollowLink('.shortcuts-new-issue'));\n\n this.enabledHelp.push('.hidden-shortcut.project');\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.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, space-before-function-paren, wrap-iife, prefer-arrow-callback, 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, 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","/* eslint-disable func-names, space-before-function-paren, no-var, consistent-return, no-new, prefer-arrow-callback, no-return-assign, one-var, one-var-declaration-per-line, object-shorthand, no-else-return, newline-per-chained-call, no-shadow, vars-on-top, prefer-template, max-len */\n\nimport $ from 'jquery';\nimport Cookies from 'js-cookie';\nimport { __ } from '~/locale';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport projectSelect from '../../project_select';\n\nexport default class Project {\n constructor() {\n const $cloneOptions = $('ul.clone-options-dropdown');\n const $projectCloneField = $('#project_clone');\n const $cloneBtnText = $('a.clone-dropdown-btn span');\n\n const selectedCloneOption = $cloneBtnText.text().trim();\n if (selectedCloneOption.length > 0) {\n $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active');\n }\n\n $('a', $cloneOptions).on('click', (e) => {\n const $this = $(e.currentTarget);\n const url = $this.attr('href');\n const activeText = $this.find('.dropdown-menu-inner-title').text();\n\n e.preventDefault();\n\n $('.is-active', $cloneOptions).not($this).removeClass('is-active');\n $this.toggleClass('is-active');\n $projectCloneField.val(url);\n $cloneBtnText.text(activeText);\n\n return $('.clone').text(url);\n });\n // Ref switcher\n Project.initRefSwitcher();\n $('.project-refs-select').on('change', function() {\n return $(this).parents('form').submit();\n });\n $('.hide-no-ssh-message').on('click', function(e) {\n Cookies.set('hide_no_ssh_message', 'false');\n $(this).parents('.no-ssh-key-message').remove();\n return e.preventDefault();\n });\n $('.hide-no-password-message').on('click', function(e) {\n Cookies.set('hide_no_password_message', 'false');\n $(this).parents('.no-password-message').remove();\n return e.preventDefault();\n });\n Project.projectSelectDropdown();\n }\n\n static projectSelectDropdown() {\n projectSelect();\n $('.project-item-select').on('click', e => Project.changeProject($(e.currentTarget).val()));\n }\n\n static changeProject(url) {\n return window.location = url;\n }\n\n static initRefSwitcher() {\n var refListItem = document.createElement('li');\n var refLink = document.createElement('a');\n\n refLink.href = '#';\n\n return $('.js-project-refs-dropdown').each(function() {\n var $dropdown, selected;\n $dropdown = $(this);\n selected = $dropdown.data('selected');\n return $dropdown.glDropdown({\n data(term, callback) {\n axios.get($dropdown.data('refsUrl'), {\n params: {\n ref: $dropdown.data('ref'),\n search: term,\n },\n })\n .then(({ data }) => callback(data))\n .catch(() => flash(__('An error occurred while getting projects')));\n },\n selectable: true,\n filterable: true,\n filterRemote: true,\n filterByText: true,\n inputFieldName: $dropdown.data('inputFieldName'),\n fieldName: $dropdown.data('fieldName'),\n renderRow: function(ref) {\n var li = refListItem.cloneNode(false);\n\n if (ref.header != null) {\n li.className = 'dropdown-header';\n li.textContent = ref.header;\n } else {\n var link = refLink.cloneNode(false);\n\n if (ref === selected) {\n link.className = 'is-active';\n }\n\n link.textContent = ref;\n link.dataset.ref = ref;\n\n li.appendChild(link);\n }\n\n return li;\n },\n id: function(obj, $el) {\n return $el.attr('data-ref');\n },\n toggleLabel: function(obj, $el) {\n return $el.text().trim();\n },\n clicked: function(options) {\n const { e } = options;\n e.preventDefault();\n if ($('input[name=\"ref\"]').length) {\n var $form = $dropdown.closest('form');\n\n var $visit = $dropdown.data('visit');\n var shouldVisit = $visit ? true : $visit;\n var action = $form.attr('action');\n var divider = action.indexOf('?') === -1 ? '?' : '&';\n if (shouldVisit) {\n visitUrl(`${action}${divider}${$form.serialize()}`);\n }\n }\n },\n });\n });\n }\n}\n","import Project from './project';\nimport ShortcutsNavigation from '../../shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Project(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n});\n","import $ from 'jquery';\n\nexport default class AjaxLoadingSpinner {\n static init() {\n const $elements = $('.js-ajax-loading-spinner');\n\n $elements.on('ajax:beforeSend', AjaxLoadingSpinner.ajaxBeforeSend);\n $elements.on('ajax:complete', AjaxLoadingSpinner.ajaxComplete);\n }\n\n static ajaxBeforeSend(e) {\n e.target.setAttribute('disabled', '');\n const iconElement = e.target.querySelector('i');\n // get first fa- icon\n const originalIcon = iconElement.className.match(/(fa-)([^\\s]+)/g)[0];\n iconElement.dataset.icon = originalIcon;\n AjaxLoadingSpinner.toggleLoadingIcon(iconElement);\n $(e.target).off('ajax:beforeSend', AjaxLoadingSpinner.ajaxBeforeSend);\n }\n\n static ajaxComplete(e) {\n e.target.removeAttribute('disabled');\n const iconElement = e.target.querySelector('i');\n AjaxLoadingSpinner.toggleLoadingIcon(iconElement);\n $(e.target).off('ajax:complete', AjaxLoadingSpinner.ajaxComplete);\n }\n\n static toggleLoadingIcon(iconElement) {\n const classList = iconElement.classList;\n classList.toggle(iconElement.dataset.icon);\n classList.toggle('fa-spinner');\n classList.toggle('fa-spin');\n }\n}\n","import $ from 'jquery';\n\nconst MODAL_SELECTOR = '#modal-delete-branch';\n\nclass DeleteModal {\n constructor() {\n this.$modal = $(MODAL_SELECTOR);\n this.$toggleBtns = $(`[data-target=\"${MODAL_SELECTOR}\"]`);\n this.$branchName = $('.js-branch-name', this.$modal);\n this.$confirmInput = $('.js-delete-branch-input', this.$modal);\n this.$deleteBtn = $('.js-delete-branch', this.$modal);\n this.$notMerged = $('.js-not-merged', this.$modal);\n this.bindEvents();\n }\n\n bindEvents() {\n this.$toggleBtns.on('click', this.setModalData.bind(this));\n this.$confirmInput.on('input', this.setDeleteDisabled.bind(this));\n this.$deleteBtn.on('click', this.setDisableDeleteButton.bind(this));\n }\n\n setModalData(e) {\n const branchData = e.currentTarget.dataset;\n this.branchName = branchData.branchName || '';\n this.deletePath = branchData.deletePath || '';\n this.isMerged = !!branchData.isMerged;\n this.updateModal();\n }\n\n setDeleteDisabled(e) {\n this.$deleteBtn.attr('disabled', e.currentTarget.value !== this.branchName);\n }\n\n setDisableDeleteButton(e) {\n if (this.$deleteBtn.is('[disabled]')) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n\n return true;\n }\n\n updateModal() {\n this.$branchName.text(this.branchName);\n this.$confirmInput.val('');\n this.$deleteBtn.attr('href', this.deletePath);\n this.$deleteBtn.attr('disabled', true);\n this.$notMerged.toggleClass('hidden', this.isMerged);\n }\n}\n\nexport default DeleteModal;\n","import AjaxLoadingSpinner from '~/ajax_loading_spinner';\nimport DeleteModal from '~/branches/branches_delete_modal';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n AjaxLoadingSpinner.init();\n new DeleteModal(); // eslint-disable-line no-new\n});\n"],"sourceRoot":""}