{"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:///./project_find_file.js","webpack:///./shortcuts_find_file.js","webpack:///./pages/projects/find_file/show/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__","ProjectFindFile","element1","element","goToBlob","goToTree","selectRowDown","selectRowUp","filePaths","inputElement","initEvent","focus","load","off","target","value","findFile","eq","result","searchText","fuzzaldrin_default","filter","renderList","_this2","axios_utils","hide","flash","locale","blobItemUrl","filePath","html","j","len","matches","empty","match","blobUrlTemplate","makeHtml","append","type","next","rows","selectedRow","prev","selectRow","treeUrl","$link","click","$tr","replaceWith","lastIndex","matchIndex","matchedChars","unmatched","substring","bold","createTextNode","highlighter","ShortcutsFindFile","projectFindFile","shortcuts_find_file_classCallCheck","oldStopCallback","mousetrap_default","stopCallback","combo","shortcuts_navigation","findElement","querySelector","project_find_file","fileFindUrl","findTreeUrl","shortcuts_find_file"],"mappings":"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","file":"pages.projects.find_file.show.7b4ed594.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, 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","/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, quotes, consistent-return, one-var, one-var-declaration-per-line, no-cond-assign, max-len, object-shorthand, no-param-reassign, comma-dangle, prefer-template, no-unused-vars, no-return-assign */\n\nimport $ from 'jquery';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport { __ } from '~/locale';\n\n// highlight text(awefwbwgtc -> awefwbwgtc )\nconst highlighter = function(element, text, matches) {\n var highlightText, j, lastIndex, len, matchIndex, matchedChars, unmatched;\n lastIndex = 0;\n highlightText = \"\";\n matchedChars = [];\n for (j = 0, len = matches.length; j < len; j += 1) {\n matchIndex = matches[j];\n unmatched = text.substring(lastIndex, matchIndex);\n if (unmatched) {\n if (matchedChars.length) {\n element.append(matchedChars.join(\"\").bold());\n }\n matchedChars = [];\n element.append(document.createTextNode(unmatched));\n }\n matchedChars.push(text[matchIndex]);\n lastIndex = matchIndex + 1;\n }\n if (matchedChars.length) {\n element.append(matchedChars.join(\"\").bold());\n }\n return element.append(document.createTextNode(text.substring(lastIndex)));\n};\n\nexport default class ProjectFindFile {\n constructor(element1, options) {\n this.element = element1;\n this.options = options;\n this.goToBlob = this.goToBlob.bind(this);\n this.goToTree = this.goToTree.bind(this);\n this.selectRowDown = this.selectRowDown.bind(this);\n this.selectRowUp = this.selectRowUp.bind(this);\n this.filePaths = {};\n this.inputElement = this.element.find(\".file-finder-input\");\n // init event\n this.initEvent();\n // focus text input box\n this.inputElement.focus();\n // load file list\n this.load(this.options.url);\n }\n\n initEvent() {\n this.inputElement.off(\"keyup\");\n this.inputElement.on(\"keyup\", (function(_this) {\n return function(event) {\n var oldValue, ref, target, value;\n target = $(event.target);\n value = target.val();\n oldValue = (ref = target.data(\"oldValue\")) != null ? ref : \"\";\n if (value !== oldValue) {\n target.data(\"oldValue\", value);\n _this.findFile();\n return _this.element.find(\"tr.tree-item\").eq(0).addClass(\"selected\").focus();\n }\n };\n })(this));\n }\n\n findFile() {\n var result, searchText;\n searchText = this.inputElement.val();\n result = searchText.length > 0 ? fuzzaldrinPlus.filter(this.filePaths, searchText) : this.filePaths;\n return this.renderList(result, searchText);\n // find file\n }\n\n // files pathes load\n load(url) {\n axios.get(url)\n .then(({ data }) => {\n this.element.find('.loading').hide();\n this.filePaths = data;\n this.findFile();\n this.element.find('.files-slider tr.tree-item').eq(0).addClass('selected').focus();\n })\n .catch(() => flash(__('An error occurred while loading filenames')));\n }\n\n // render result\n renderList(filePaths, searchText) {\n var blobItemUrl, filePath, html, i, j, len, matches, results;\n this.element.find(\".tree-table > tbody\").empty();\n results = [];\n for (i = j = 0, len = filePaths.length; j < len; i = (j += 1)) {\n filePath = filePaths[i];\n if (i === 20) {\n break;\n }\n if (searchText) {\n matches = fuzzaldrinPlus.match(filePath, searchText);\n }\n blobItemUrl = this.options.blobUrlTemplate + \"/\" + filePath;\n html = ProjectFindFile.makeHtml(filePath, matches, blobItemUrl);\n results.push(this.element.find(\".tree-table > tbody\").append(html));\n }\n return results;\n }\n\n // make tbody row html\n static makeHtml(filePath, matches, blobItemUrl) {\n var $tr;\n $tr = $(\"\");\n if (matches) {\n $tr.find(\"a\").replaceWith(highlighter($tr.find(\"a\"), filePath, matches).attr(\"href\", blobItemUrl));\n } else {\n $tr.find(\"a\").attr(\"href\", blobItemUrl);\n $tr.find(\".str-truncated\").text(filePath);\n }\n return $tr;\n }\n\n selectRow(type) {\n var next, rows, selectedRow;\n rows = this.element.find(\".files-slider tr.tree-item\");\n selectedRow = this.element.find(\".files-slider tr.tree-item.selected\");\n if (rows && rows.length > 0) {\n if (selectedRow && selectedRow.length > 0) {\n if (type === \"UP\") {\n next = selectedRow.prev();\n } else if (type === \"DOWN\") {\n next = selectedRow.next();\n }\n if (next.length > 0) {\n selectedRow.removeClass(\"selected\");\n selectedRow = next;\n }\n } else {\n selectedRow = rows.eq(0);\n }\n return selectedRow.addClass(\"selected\").focus();\n }\n }\n\n selectRowUp() {\n return this.selectRow(\"UP\");\n }\n\n selectRowDown() {\n return this.selectRow(\"DOWN\");\n }\n\n goToTree() {\n return location.href = this.options.treeUrl;\n }\n\n goToBlob() {\n var $link = this.element.find(\".tree-item.selected .tree-item-file-name a\");\n\n if ($link.length) {\n $link.get(0).click();\n }\n }\n}\n","import Mousetrap from 'mousetrap';\nimport ShortcutsNavigation from './shortcuts_navigation';\n\nexport default class ShortcutsFindFile extends ShortcutsNavigation {\n constructor(projectFindFile) {\n super();\n\n const oldStopCallback = Mousetrap.stopCallback;\n this.projectFindFile = projectFindFile;\n\n Mousetrap.stopCallback = (e, element, combo) => {\n if (\n element === this.projectFindFile.inputElement[0] &&\n (combo === 'up' || combo === 'down' || combo === 'esc' || combo === 'enter')\n ) {\n // when press up/down key in textbox, cusor prevent to move to home/end\n event.preventDefault();\n return false;\n }\n\n return oldStopCallback(e, element, combo);\n };\n\n Mousetrap.bind('up', this.projectFindFile.selectRowUp);\n Mousetrap.bind('down', this.projectFindFile.selectRowDown);\n Mousetrap.bind('esc', this.projectFindFile.goToTree);\n Mousetrap.bind('enter', this.projectFindFile.goToBlob);\n }\n}\n","import $ from 'jquery';\nimport ProjectFindFile from '~/project_find_file';\nimport ShortcutsFindFile from '~/shortcuts_find_file';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const findElement = document.querySelector('.js-file-finder');\n const projectFindFile = new ProjectFindFile($('.file-finder-holder'), {\n url: findElement.dataset.fileFindUrl,\n treeUrl: findElement.dataset.findTreeUrl,\n blobUrlTemplate: findElement.dataset.blobUrlTemplate,\n });\n new ShortcutsFindFile(projectFindFile); // eslint-disable-line no-new\n});\n"],"sourceRoot":""}