{"version":3,"sources":["webpack:///./shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./compare_autocomplete.js","webpack:///./pages/projects/project.js","webpack:///./pages/projects/index.js","webpack:///./pages/projects/compare/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__","_lib_utils_text_utility__WEBPACK_IMPORTED_MODULE_4__","initCompareAutocomplete","limitTo","arguments","length","undefined","clickHandler","jquery__WEBPACK_IMPORTED_MODULE_0___default","$dropdown","selected","$dropdownContainer","closest","$fieldInput","$","$filterInput","glDropdown","params","ref","search","find","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_2__","get","then","_ref","catch","_flash__WEBPACK_IMPORTED_MODULE_3__","_locale__WEBPACK_IMPORTED_MODULE_1__","selectable","filterable","filterRemote","fieldName","filterInput","renderRow","link","header","addClass","append","obj","$el","toggleLabel","trim","clicked","keyCode","which","removeClass","prop","target","replace","hasClass","tooltip","Project","$cloneOptions","$projectCloneField","$cloneBtnText","selectedCloneOption","$this","activeText","not","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","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_4__","_flash__WEBPACK_IMPORTED_MODULE_5__","_locale__WEBPACK_IMPORTED_MODULE_2__","filterByText","inputFieldName","li","cloneNode","className","textContent","dataset","appendChild","options","$form","$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__","_compare_autocomplete__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"pages.projects.compare.1d2eb545.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(`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.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 = \"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(_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, one-var, no-var, one-var-declaration-per-line, object-shorthand, comma-dangle, prefer-arrow-callback, no-else-return, newline-per-chained-call, wrap-iife, max-len */\n\nimport $ from 'jquery';\nimport { __ } from './locale';\nimport axios from './lib/utils/axios_utils';\nimport flash from './flash';\nimport { capitalizeFirstCharacter } from './lib/utils/text_utility';\n\nexport default function initCompareAutocomplete(limitTo = null, clickHandler = () => {}) {\n $('.js-compare-dropdown').each(function() {\n var $dropdown, selected;\n $dropdown = $(this);\n selected = $dropdown.data('selected');\n const $dropdownContainer = $dropdown.closest('.dropdown');\n const $fieldInput = $(`input[name=\"${$dropdown.data('fieldName')}\"]`, $dropdownContainer);\n const $filterInput = $('input[type=\"search\"]', $dropdownContainer);\n $dropdown.glDropdown({\n data: function(term, callback) {\n const params = {\n ref: $dropdown.data('ref'),\n search: term,\n };\n\n if (limitTo) {\n params.find = limitTo;\n }\n\n axios\n .get($dropdown.data('refsUrl'), {\n params,\n })\n .then(({ data }) => {\n if (limitTo) {\n callback(data[capitalizeFirstCharacter(limitTo)] || []);\n } else {\n callback(data);\n }\n })\n .catch(() => flash(__('Error fetching refs')));\n },\n selectable: true,\n filterable: true,\n filterRemote: true,\n fieldName: $dropdown.data('fieldName'),\n filterInput: 'input[type=\"search\"]',\n renderRow: function(ref) {\n var link;\n if (ref.header != null) {\n return $('
  • ')\n .addClass('dropdown-header')\n .text(ref.header);\n } else {\n link = $('')\n .attr('href', '#')\n .addClass(ref === selected ? 'is-active' : '')\n .text(ref)\n .attr('data-ref', ref);\n return $('
  • ').append(link);\n }\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: () => clickHandler($dropdown),\n });\n $filterInput.on('keyup', e => {\n const keyCode = e.keyCode || e.which;\n if (keyCode !== 13) return;\n const text = $filterInput.val();\n $fieldInput.val(text);\n $('.dropdown-toggle-text', $dropdown).text(text);\n $dropdownContainer.removeClass('open');\n });\n\n $dropdownContainer.on('click', '.dropdown-content a', e => {\n $dropdown.prop('title', e.target.text.replace(/_+?/g, '-'));\n if ($dropdown.hasClass('has-tooltip')) {\n $dropdown.tooltip('_fixTitle');\n }\n });\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 initCompareAutocomplete from '~/compare_autocomplete';\n\ndocument.addEventListener('DOMContentLoaded', () => initCompareAutocomplete());\n"],"sourceRoot":""}