{"version":3,"sources":["webpack:///./pager.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","GpgBadges","badges","tag","serialize","signatures","forEach","signature","filter","commit_sha","replaceWith","_flash__WEBPACK_IMPORTED_MODULE_3__","_locale__WEBPACK_IMPORTED_MODULE_4__","CommitsList","_classCallCheck","timer","$contentList","jquery_default","pager","processCommits","bind","content","searchField","lastSearch","val","initSearch","on","clearTimeout","setTimeout","filterResults","form","search","Promise","resolve","commitsUrl","attr","fadeTo","serializeArray","reduce","acc","obj","assign","_defineProperty","name","value","axios_utils","history","replaceState","page","title","processedData","$processedData","$commitsHeadersLast","find","last","lastShownDay","loadedShownDayFirst","commitsCount","nextUntil","not","Number","text","text_utility","datetime_utility","addEventListener","commits","querySelector","dataset","commitsLimit","shortcuts_navigation","gpg_badges","fetch"],"mappings":"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","file":"pages.projects.commits.show.9b64b485.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 $ 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 window.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":""}