{"version":3,"sources":["webpack:///./pager.js","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:///./gpg_badges.js","webpack:///./commits.js","webpack:///./pages/projects/commits/show/index.js"],"names":["__webpack_exports__","init","limit","arguments","length","undefined","preload","disable","prepareData","jquery__WEBPACK_IMPORTED_MODULE_0___default","a","noop","callback","this","url","data","Object","_lib_utils_url_utility__WEBPACK_IMPORTED_MODULE_3__","offset","parseInt","_lib_utils_common_utils__WEBPACK_IMPORTED_MODULE_1__","loading","first","getOld","initLoadMore","_this","show","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_2__","get","params","then","_ref","append","count","html","isScrollable","hide","catch","$w","window","document","height","scrollTop","_this2","off","endlessScroll","bottomPixels","fireDelay","fireOnce","ceaseFire","is","ShortcutsNavigation","_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","call","mousetrap__WEBPACK_IMPORTED_MODULE_0___default","bind","_shortcuts_dashboard_navigation__WEBPACK_IMPORTED_MODULE_1__","enabledHelp","push","_shortcuts__WEBPACK_IMPORTED_MODULE_2__","ProjectSelectComboButton","select","projectSelectInput","jquery_default","newItemBtn","resourceType","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","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","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","Project","$cloneOptions","$projectCloneField","$cloneBtnText","selectedCloneOption","trim","$","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","location","refListItem","createElement","refLink","href","$dropdown","selected","glDropdown","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_4__","ref","search","_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","visitUrl","serialize","addEventListener","_project__WEBPACK_IMPORTED_MODULE_0__","_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_1__","GpgBadges","badges","tag","signatures","forEach","signature","filter","commit_sha","replaceWith","_flash__WEBPACK_IMPORTED_MODULE_3__","_locale__WEBPACK_IMPORTED_MODULE_4__","CommitsList","timer","$contentList","pager","processCommits","content","searchField","lastSearch","initSearch","clearTimeout","setTimeout","filterResults","form","Promise","resolve","commitsUrl","fadeTo","serializeArray","reduce","acc","assign","_defineProperty","value","axios_utils","history","replaceState","page","title","processedData","$processedData","$commitsHeadersLast","last","lastShownDay","loadedShownDayFirst","commitsCount","nextUntil","Number","text_utility","datetime_utility","commits","querySelector","commitsLimit","shortcuts_navigation","gpg_badges","fetch"],"mappings":"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","file":"pages.projects.commits.show.08d04d97.chunk.js","sourcesContent":["import $ from 'jquery';\nimport { getParameterByName } from '~/lib/utils/common_utils';\nimport axios from './lib/utils/axios_utils';\nimport { removeParams } from './lib/utils/url_utility';\n\nconst ENDLESS_SCROLL_BOTTOM_PX = 400;\nconst ENDLESS_SCROLL_FIRE_DELAY_MS = 1000;\n\nexport default {\n init(limit = 0, preload = false, disable = false, prepareData = $.noop, callback = $.noop) {\n this.url = $('.content_list').data('href') || removeParams(['limit', 'offset']);\n this.limit = limit;\n this.offset = parseInt(getParameterByName('offset'), 10) || this.limit;\n this.disable = disable;\n this.prepareData = prepareData;\n this.callback = callback;\n this.loading = $('.loading').first();\n if (preload) {\n this.offset = 0;\n this.getOld();\n }\n this.initLoadMore();\n },\n\n getOld() {\n this.loading.show();\n axios.get(this.url, {\n params: {\n limit: this.limit,\n offset: this.offset,\n },\n }).then(({ data }) => {\n this.append(data.count, this.prepareData(data.html));\n this.callback();\n\n // keep loading until we've filled the viewport height\n if (!this.disable && !this.isScrollable()) {\n this.getOld();\n } else {\n this.loading.hide();\n }\n }).catch(() => this.loading.hide());\n },\n\n append(count, html) {\n $('.content_list').append(html);\n if (count > 0) {\n this.offset += count;\n } else {\n this.disable = true;\n }\n },\n\n isScrollable() {\n const $w = $(window);\n return $(document).height() > $w.height() + $w.scrollTop() + ENDLESS_SCROLL_BOTTOM_PX;\n },\n\n initLoadMore() {\n $(document).off('scroll');\n $(document).endlessScroll({\n bottomPixels: ENDLESS_SCROLL_BOTTOM_PX,\n fireDelay: ENDLESS_SCROLL_FIRE_DELAY_MS,\n fireOnce: true,\n ceaseFire: () => this.disable === true,\n callback: () => {\n if (!this.loading.is(':visible')) {\n this.loading.show();\n this.getOld();\n }\n },\n });\n },\n};\n","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';\nimport { parseQueryStringIntoObject } from '~/lib/utils/common_utils';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport { __ } from '~/locale';\n\nexport default class GpgBadges {\n static fetch() {\n const badges = $('.js-loading-gpg-badge');\n const tag = $('.js-signature-container');\n\n badges.html('');\n\n const params = parseQueryStringIntoObject(tag.serialize());\n return axios.get(tag.data('signaturesPath'), { params })\n .then(({ data }) => {\n data.signatures.forEach((signature) => {\n badges.filter(`[data-commit-sha=\"${signature.commit_sha}\"]`).replaceWith(signature.html);\n });\n })\n .catch(() => flash(__('An error occurred while loading commits')));\n }\n}\n","import $ from 'jquery';\nimport { pluralize } from './lib/utils/text_utility';\nimport { localTimeAgo } from './lib/utils/datetime_utility';\nimport Pager from './pager';\nimport axios from './lib/utils/axios_utils';\n\nexport default class CommitsList {\n constructor(limit = 0) {\n this.timer = null;\n\n this.$contentList = $('.content_list');\n\n Pager.init(parseInt(limit, 10), false, false, this.processCommits.bind(this));\n\n this.content = $('#commits-list');\n this.searchField = $('#commits-search');\n this.lastSearch = this.searchField.val();\n this.initSearch();\n }\n\n initSearch() {\n this.timer = null;\n this.searchField.on('keyup', () => {\n clearTimeout(this.timer);\n this.timer = setTimeout(this.filterResults.bind(this), 500);\n });\n }\n\n filterResults() {\n const form = $('.commits-search-form');\n const search = this.searchField.val();\n if (search === this.lastSearch) return Promise.resolve();\n const commitsUrl = `${form.attr('action')}?${form.serialize()}`;\n this.content.fadeTo('fast', 0.5);\n const params = form.serializeArray().reduce((acc, obj) => Object.assign(acc, {\n [obj.name]: obj.value,\n }), {});\n\n return axios.get(form.attr('action'), {\n params,\n })\n .then(({ data }) => {\n this.lastSearch = search;\n this.content.html(data.html);\n this.content.fadeTo('fast', 1.0);\n\n // Change url so if user reload a page - search results are saved\n history.replaceState({\n page: commitsUrl,\n }, document.title, commitsUrl);\n })\n .catch(() => {\n this.content.fadeTo('fast', 1.0);\n this.lastSearch = null;\n });\n }\n\n // Prepare loaded data.\n processCommits(data) {\n let processedData = data;\n const $processedData = $(processedData);\n const $commitsHeadersLast = this.$contentList.find('li.js-commit-header').last();\n const lastShownDay = $commitsHeadersLast.data('day');\n const $loadedCommitsHeadersFirst = $processedData.filter('li.js-commit-header').first();\n const loadedShownDayFirst = $loadedCommitsHeadersFirst.data('day');\n let commitsCount;\n\n // If commits headers show the same date,\n // remove the last header and change the previous one.\n if (lastShownDay === loadedShownDayFirst) {\n // Last shown commits count under the last commits header.\n commitsCount = $commitsHeadersLast.nextUntil('li.js-commit-header').find('li.commit').length;\n\n // Remove duplicate of commits header.\n processedData = $processedData.not(`li.js-commit-header[data-day='${loadedShownDayFirst}']`);\n\n // Update commits count in the previous commits header.\n commitsCount += Number($(processedData).nextUntil('li.js-commit-header').first().find('li.commit').length);\n $commitsHeadersLast.find('span.commits-count').text(`${commitsCount} ${pluralize('commit', commitsCount)}`);\n }\n\n localTimeAgo($processedData.find('.js-timeago'));\n\n return processedData;\n }\n}\n","import CommitsList from '~/commits';\nimport GpgBadges from '~/gpg_badges';\nimport ShortcutsNavigation from '~/shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new CommitsList(document.querySelector('.js-project-commits-show').dataset.commitsLimit); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n GpgBadges.fetch();\n});\n"],"sourceRoot":""}