{"version":3,"sources":["webpack:///./vue_shared/components/loading_button.vue?565f","webpack:///./vue_shared/components/loading_button.vue?93b7","webpack:///vue_shared/components/loading_button.vue","webpack:///./vue_shared/components/loading_button.vue","webpack:///./jobs/mixins/delayed_job_mixin.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/lib/visibility.timers.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/lib/visibility.core.js","webpack:///./vue_shared/components/ci_badge_link.vue?3c44","webpack:///./vue_shared/components/ci_badge_link.vue?b52c","webpack:///vue_shared/components/ci_badge_link.vue","webpack:///./vue_shared/components/ci_badge_link.vue","webpack:///./behaviors/shortcuts/shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:///./pages/projects/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/index.js","webpack:///./lib/utils/http_status.js","webpack:///./vue_shared/mixins/timeago.js","webpack:///./vue_shared/components/ci_icon.vue?f6a2","webpack:///vue_shared/components/ci_icon.vue","webpack:///./vue_shared/components/ci_icon.vue?1dcc","webpack:///./vue_shared/components/ci_icon.vue","webpack:///./lib/utils/poll.js"],"names":["components_loading_buttonvue_type_script_lang_js_","components","GlLoadingIcon","props","loading","type","Boolean","required","default","disabled","label","String","containerClass","Array","Object","methods","onClick","e","this","$emit","component","componentNormalizer","_vm","_h","$createElement","_c","_self","class","attrs","on","click","name","staticClass","append-right-5","inline","_e","_v","_t","_s","options","__file","__webpack_exports__","_lib_utils_datetime_utility__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","data","remainingTime","formatTime","remainingTimeIntervalId","mounted","startRemainingTimeInterval","beforeDestroy","clearInterval","computed","isDelayedJob","job","scheduled","watch","_this","updateRemainingTime","setInterval","remainingMilliseconds","calculateRemainingMilliseconds","scheduled_at","window","lastTimer","install","Visibility","every","interval","hiddenInterval","callback","_time","number","_timers","visible","hidden","_run","isSupported","_listen","stop","id","_stop","_timed","_wasHidden","change","_stopRun","runNow","timer","runner","last","Date","call","delay","setTimeout","clearTimeout","event","isHidden","wasHidden","i","module","exports","global","lastId","self","onVisible","support","listener","state","unbind","_callbacks","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","document","_change","_init","apply","arguments","addEventListener","attachEvent","components_ci_badge_linkvue_type_script_lang_js_","CiIcon","directives","GlTooltip","dist","status","showText","cssClass","className","group","concat","rawName","href","details_path","title","text","ShortcutsNavigation","_classCallCheck","_possibleConstructorReturn","_getPrototypeOf","Mousetrap","bind","findAndFollowLink","enabledHelp","push","Shortcuts","ProjectSelectComboButton","select","projectSelectInput","$","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","siblings","openDropdown","getProjectFromLocalStorage","preventDefault","selectProject","AccessorUtilities","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","currentTarget","select2","selectedProjectData","JSON","parse","val","projectMeta","url","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","project","attr","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","stringify","setItem","split","slice","projectSelect","each","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","withShared","undefined","includeProjectsInSubgroups","allowClear","minimumInputLength","query","finalCallback","projectsCallback","projects","results","groupsCallback","groups","Api","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","with_shared","include_subgroups","order_by","membership","web_url","name_with_namespace","initSelection","el","then","_ref","dropdownCssClass","d","Project","$cloneOptions","$projectCloneField","$cloneBtnLabel","mobileCloneField","querySelector","selectedCloneOption","trim","length","addClass","$this","cloneType","removeClass","$el","activeText","find","$label","closest","toggleClass","dataset","clipboardText","initRefSwitcher","parents","submit","Cookies","set","remove","projectId","cookieKey","projectSelectDropdown","changeProject","location","refListItem","createElement","refLink","$dropdown","selected","glDropdown","axios","get","params","ref","search","catch","flash","__","selectable","filterable","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","header","textContent","link","appendChild","obj","toggleLabel","clicked","$form","$visit","shouldVisit","action","divider","indexOf","visitUrl","serialize","r","_dismissable_callout__WEBPACK_IMPORTED_MODULE_0__","_projects_gke_cluster_dropdowns__WEBPACK_IMPORTED_MODULE_1__","_project__WEBPACK_IMPORTED_MODULE_2__","_behaviors_shortcuts_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_3__","page","body","initDismissableCallout","initGkeDropdowns","successCodes","httpStatusCodes","ABORTED","OK","CREATED","ACCEPTED","NON_AUTHORITATIVE_INFORMATION","NO_CONTENT","RESET_CONTENT","PARTIAL_CONTENT","MULTI_STATUS","ALREADY_REPORTED","IM_USED","MULTIPLE_CHOICES","BAD_REQUEST","FORBIDDEN","NOT_FOUND","UNPROCESSABLE_ENTITY","timeFormated","time","getTimeago","format","tooltipTitle","formatDate","validSizes","components_ci_iconvue_type_script_lang_js_","Icon","size","Number","validator","value","includes","borderless","icon","Poll","notificationCallback","intervalHeader","timeoutID","canPoll","response","headers","normalizeHeaders","pollInterval","parseInt","makeRequest","successCallback","_this2","_this$options","resource","method","errorCallback","checkConditions","error"],"mappings":"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","file":"commons~pages.projects.commit.pipelines~pages.projects.jobs.show~pages.projects.pipelines.builds~pag~607ad509.5a4a4b25.chunk.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{class:_vm.containerClass,attrs:{\"disabled\":_vm.loading || _vm.disabled,\"type\":\"button\"},on:{\"click\":_vm.onClick}},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.loading)?_c('gl-loading-icon',{staticClass:\"js-loading-button-icon\",class:{\n 'append-right-5': _vm.label,\n },attrs:{\"inline\":true}}):_vm._e()],1),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[_vm._t(\"default\",[(_vm.label)?_c('span',{staticClass:\"js-loading-button-label\"},[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]):_vm._e()])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading_button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading_button.vue?vue&type=script&lang=js&\"","\n\n\n \n\n","import { render, staticRenderFns } from \"./loading_button.vue?vue&type=template&id=b5a20890&\"\nimport script from \"./loading_button.vue?vue&type=script&lang=js&\"\nexport * from \"./loading_button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"loading_button.vue\"\nexport default component.exports","import { calculateRemainingMilliseconds, formatTime } from '~/lib/utils/datetime_utility';\n\nexport default {\n data() {\n return {\n remainingTime: formatTime(0),\n remainingTimeIntervalId: null,\n };\n },\n\n mounted() {\n this.startRemainingTimeInterval();\n },\n\n beforeDestroy() {\n if (this.remainingTimeIntervalId) {\n clearInterval(this.remainingTimeIntervalId);\n }\n },\n\n computed: {\n isDelayedJob() {\n return this.job && this.job.scheduled;\n },\n },\n\n watch: {\n isDelayedJob() {\n this.startRemainingTimeInterval();\n },\n },\n\n methods: {\n startRemainingTimeInterval() {\n if (this.remainingTimeIntervalId) {\n clearInterval(this.remainingTimeIntervalId);\n }\n\n if (this.isDelayedJob) {\n this.updateRemainingTime();\n this.remainingTimeIntervalId = setInterval(() => this.updateRemainingTime(), 1000);\n }\n },\n\n updateRemainingTime() {\n const remainingMilliseconds = calculateRemainingMilliseconds(this.job.scheduled_at);\n this.remainingTime = formatTime(remainingMilliseconds);\n },\n },\n};\n",";(function (window) {\n \"use strict\";\n\n var lastTimer = -1;\n\n var install = function (Visibility) {\n\n // Run callback every `interval` milliseconds if page is visible and\n // every `hiddenInterval` milliseconds if page is hidden.\n //\n // Visibility.every(60 * 1000, 5 * 60 * 1000, function () {\n // checkNewMails();\n // });\n //\n // You can skip `hiddenInterval` and callback will be called only if\n // page is visible.\n //\n // Visibility.every(1000, function () {\n // updateCountdown();\n // });\n //\n // It is analog of `setInterval(callback, interval)` but use visibility\n // state.\n //\n // It return timer ID, that you can use in `Visibility.stop(id)` to stop\n // timer (`clearInterval` analog).\n // Warning: timer ID is different from interval ID from `setInterval`,\n // so don’t use it in `clearInterval`.\n //\n // On change state from hidden to visible timers will be execute.\n Visibility.every = function (interval, hiddenInterval, callback) {\n Visibility._time();\n\n if ( !callback ) {\n callback = hiddenInterval;\n hiddenInterval = null;\n }\n\n lastTimer += 1;\n var number = lastTimer;\n\n Visibility._timers[number] = {\n visible: interval,\n hidden: hiddenInterval,\n callback: callback\n };\n Visibility._run(number, false);\n\n if ( Visibility.isSupported() ) {\n Visibility._listen();\n }\n return number;\n };\n\n // Stop timer from `every` method by it ID (`every` method return it).\n //\n // slideshow = Visibility.every(5 * 1000, function () {\n // changeSlide();\n // });\n // $('.stopSlideshow').click(function () {\n // Visibility.stop(slideshow);\n // });\n Visibility.stop = function(id) {\n if ( !Visibility._timers[id] ) {\n return false;\n }\n Visibility._stop(id);\n delete Visibility._timers[id];\n return true;\n };\n\n // Callbacks and intervals added by `every` method.\n Visibility._timers = { };\n\n // Initialize variables on page loading.\n Visibility._time = function () {\n if ( Visibility._timed ) {\n return;\n }\n Visibility._timed = true;\n Visibility._wasHidden = Visibility.hidden();\n\n Visibility.change(function () {\n Visibility._stopRun();\n Visibility._wasHidden = Visibility.hidden();\n });\n };\n\n // Try to run timer from every method by it’s ID. It will be use\n // `interval` or `hiddenInterval` depending on visibility state.\n // If page is hidden and `hiddenInterval` is null,\n // it will not run timer.\n //\n // Argument `runNow` say, that timers must be execute now too.\n Visibility._run = function (id, runNow) {\n var interval,\n timer = Visibility._timers[id];\n\n if ( Visibility.hidden() ) {\n if ( null === timer.hidden ) {\n return;\n }\n interval = timer.hidden;\n } else {\n interval = timer.visible;\n }\n\n var runner = function () {\n timer.last = new Date();\n timer.callback.call(window);\n }\n\n if ( runNow ) {\n var now = new Date();\n var last = now - timer.last ;\n\n if ( interval > last ) {\n timer.delay = setTimeout(function () {\n timer.id = setInterval(runner, interval);\n runner();\n }, interval - last);\n } else {\n timer.id = setInterval(runner, interval);\n runner();\n }\n\n } else {\n timer.id = setInterval(runner, interval);\n }\n };\n\n // Stop timer from `every` method by it’s ID.\n Visibility._stop = function (id) {\n var timer = Visibility._timers[id];\n clearInterval(timer.id);\n clearTimeout(timer.delay);\n delete timer.id;\n delete timer.delay;\n };\n\n // Listener for `visibilitychange` event.\n Visibility._stopRun = function (event) {\n var isHidden = Visibility.hidden(),\n wasHidden = Visibility._wasHidden;\n\n if ( (isHidden && !wasHidden) || (!isHidden && wasHidden) ) {\n for ( var i in Visibility._timers ) {\n Visibility._stop(i);\n Visibility._run(i, !isHidden);\n }\n }\n };\n\n return Visibility;\n }\n\n if ( typeof(module) != 'undefined' && module.exports ) {\n module.exports = install(require('./visibility.core'));\n } else {\n install(window.Visibility)\n }\n\n})(window);\n",";(function (global) {\n \"use strict\";\n\n var lastId = -1;\n\n // Visibility.js allow you to know, that your web page is in the background\n // tab and thus not visible to the user. This library is wrap under\n // Page Visibility API. It fix problems with different vendor prefixes and\n // add high-level useful functions.\n var self = {\n\n // Call callback only when page become to visible for user or\n // call it now if page is visible now or Page Visibility API\n // doesn’t supported.\n //\n // Return false if API isn’t supported, true if page is already visible\n // or listener ID (you can use it in `unbind` method) if page isn’t\n // visible now.\n //\n // Visibility.onVisible(function () {\n // startIntroAnimation();\n // });\n onVisible: function (callback) {\n var support = self.isSupported();\n if ( !support || !self.hidden() ) {\n callback();\n return support;\n }\n\n var listener = self.change(function (e, state) {\n if ( !self.hidden() ) {\n self.unbind(listener);\n callback();\n }\n });\n return listener;\n },\n\n // Call callback when visibility will be changed. First argument for\n // callback will be original event object, second will be visibility\n // state name.\n //\n // Return listener ID to unbind listener by `unbind` method.\n //\n // If Page Visibility API doesn’t supported method will be return false\n // and callback never will be called.\n //\n // Visibility.change(function(e, state) {\n // Statistics.visibilityChange(state);\n // });\n //\n // It is just proxy to `visibilitychange` event, but use vendor prefix.\n change: function (callback) {\n if ( !self.isSupported() ) {\n return false;\n }\n lastId += 1;\n var number = lastId;\n self._callbacks[number] = callback;\n self._listen();\n return number;\n },\n\n // Remove `change` listener by it ID.\n //\n // var id = Visibility.change(function(e, state) {\n // firstChangeCallback();\n // Visibility.unbind(id);\n // });\n unbind: function (id) {\n delete self._callbacks[id];\n },\n\n // Call `callback` in any state, expect “prerender”. If current state\n // is “prerender” it will wait until state will be changed.\n // If Page Visibility API doesn’t supported, it will call `callback`\n // immediately.\n //\n // Return false if API isn’t supported, true if page is already after\n // prerendering or listener ID (you can use it in `unbind` method)\n // if page is prerended now.\n //\n // Visibility.afterPrerendering(function () {\n // Statistics.countVisitor();\n // });\n afterPrerendering: function (callback) {\n var support = self.isSupported();\n var prerender = 'prerender';\n\n if ( !support || prerender != self.state() ) {\n callback();\n return support;\n }\n\n var listener = self.change(function (e, state) {\n if ( prerender != state ) {\n self.unbind(listener);\n callback();\n }\n });\n return listener;\n },\n\n // Return true if page now isn’t visible to user.\n //\n // if ( !Visibility.hidden() ) {\n // VideoPlayer.play();\n // }\n //\n // It is just proxy to `document.hidden`, but use vendor prefix.\n hidden: function () {\n return !!(self._doc.hidden || self._doc.webkitHidden);\n },\n\n // Return visibility state: 'visible', 'hidden' or 'prerender'.\n //\n // if ( 'prerender' == Visibility.state() ) {\n // Statistics.pageIsPrerendering();\n // }\n //\n // Don’t use `Visibility.state()` to detect, is page visible, because\n // visibility states can extend in next API versions.\n // Use more simpler and general `Visibility.hidden()` for this cases.\n //\n // It is just proxy to `document.visibilityState`, but use\n // vendor prefix.\n state: function () {\n return self._doc.visibilityState ||\n self._doc.webkitVisibilityState ||\n 'visible';\n },\n\n // Return true if browser support Page Visibility API.\n //\n // if ( Visibility.isSupported() ) {\n // Statistics.startTrackingVisibility();\n // Visibility.change(function(e, state)) {\n // Statistics.trackVisibility(state);\n // });\n // }\n isSupported: function () {\n return !!(self._doc.visibilityState ||\n self._doc.webkitVisibilityState);\n },\n\n // Link to document object to change it in tests.\n _doc: document || {},\n\n // Callbacks from `change` method, that wait visibility changes.\n _callbacks: { },\n\n // Listener for `visibilitychange` event.\n _change: function(event) {\n var state = self.state();\n\n for ( var i in self._callbacks ) {\n self._callbacks[i].call(self._doc, event, state);\n }\n },\n\n // Set listener for `visibilitychange` event.\n _listen: function () {\n if ( self._init ) {\n return;\n }\n\n var event = 'visibilitychange';\n if ( self._doc.webkitVisibilityState ) {\n event = 'webkit' + event;\n }\n\n var listener = function () {\n self._change.apply(self, arguments);\n };\n if ( self._doc.addEventListener ) {\n self._doc.addEventListener(event, listener);\n } else {\n self._doc.attachEvent(event, listener);\n }\n self._init = true;\n }\n\n };\n\n if ( typeof(module) != 'undefined' && module.exports ) {\n module.exports = self;\n } else {\n global.Visibility = self;\n }\n\n})(this);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],class:_vm.cssClass,attrs:{\"href\":_vm.status.details_path,\"title\":!_vm.showText ? _vm.status.text : ''}},[_c('ci-icon',{attrs:{\"status\":_vm.status}}),_vm._v(\" \"),(_vm.showText)?[_vm._v(\"\\n \"+_vm._s(_vm.status.text)+\"\\n \")]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ci_badge_link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ci_badge_link.vue?vue&type=script&lang=js&\"","\n\n \n \n\n \n {{ status.text }}\n \n \n\n","import { render, staticRenderFns } from \"./ci_badge_link.vue?vue&type=template&id=5f874d1a&\"\nimport script from \"./ci_badge_link.vue?vue&type=script&lang=js&\"\nexport * from \"./ci_badge_link.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"ci_badge_link.vue\"\nexport default component.exports","import Mousetrap from 'mousetrap';\nimport findAndFollowLink from '../../lib/utils/navigation_utility';\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('g l', () => findAndFollowLink('.shortcuts-metrics'));\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\n .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 = [\n 'group',\n this.groupId,\n this.formattedText.localStorageItemType,\n 'recent-project',\n ].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n $(event.currentTarget)\n .siblings('.project-item-select')\n .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\n .split('_')\n .join('-')\n .slice(0, -1)}`;\n const presetTextSuffix = this.resourceType\n .split('_')\n .join(' ')\n .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","/* eslint-disable func-names, no-var, object-shorthand, one-var, no-else-return */\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 this.withShared =\n $(select).data('withShared') === undefined ? true : $(select).data('withShared');\n this.includeProjectsInSubgroups = $(select).data('includeProjectsInSubgroups') || false;\n this.allowClear = $(select).data('allowClear') || false;\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(\n _this.groupId,\n query.term,\n {\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n with_shared: _this.withShared,\n include_subgroups: _this.includeProjectsInSubgroups,\n },\n projectsCallback,\n );\n } else {\n return Api.projects(\n query.term,\n {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n },\n projectsCallback,\n );\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\n initSelection: function(el, callback) {\n return Api.project(el.val()).then(({ data }) => callback(data));\n },\n\n allowClear: this.allowClear,\n\n dropdownCssClass: 'ajax-project-dropdown',\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n}\n","/* eslint-disable func-names, no-var, no-return-assign, one-var, object-shorthand, vars-on-top */\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 $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label');\n const mobileCloneField = document.querySelector(\n '.js-mobile-git-clone .js-clone-dropdown-label',\n );\n\n const selectedCloneOption = $cloneBtnLabel.text().trim();\n if (selectedCloneOption.length > 0) {\n $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active');\n }\n\n $('a', $cloneOptions).on('click', e => {\n e.preventDefault();\n const $this = $(e.currentTarget);\n const url = $this.attr('href');\n const cloneType = $this.data('cloneType');\n\n $('.is-active', $cloneOptions).removeClass('is-active');\n $(`a[data-clone-type=\"${cloneType}\"]`).each(function() {\n const $el = $(this);\n const activeText = $el.find('.dropdown-menu-inner-title').text();\n const $container = $el.closest('.project-clone-holder');\n const $label = $container.find('.js-clone-dropdown-label');\n\n $el.toggleClass('is-active');\n $label.text(activeText);\n });\n\n if (mobileCloneField) {\n mobileCloneField.dataset.clipboardText = url;\n } else {\n $projectCloneField.val(url);\n }\n $('.js-git-empty .js-clone').text(url);\n });\n // Ref switcher\n Project.initRefSwitcher();\n $('.project-refs-select').on('change', function() {\n return $(this)\n .parents('form')\n .submit();\n });\n $('.hide-no-ssh-message').on('click', function(e) {\n Cookies.set('hide_no_ssh_message', 'false');\n $(this)\n .parents('.no-ssh-key-message')\n .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)\n .parents('.no-password-message')\n .remove();\n return e.preventDefault();\n });\n $('.hide-auto-devops-implicitly-enabled-banner').on('click', function(e) {\n const projectId = $(this).data('project-id');\n const cookieKey = `hide_auto_devops_implicitly_enabled_banner_${projectId}`;\n Cookies.set(cookieKey, 'false');\n $(this)\n .parents('.auto-devops-implicitly-enabled-banner')\n .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\n .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 initDismissableCallout from '~/dismissable_callout';\nimport initGkeDropdowns from '~/projects/gke_cluster_dropdowns';\nimport Project from './project';\nimport ShortcutsNavigation from '../../behaviors/shortcuts/shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const { page } = document.body.dataset;\n const newClusterViews = [\n 'projects:clusters:new',\n 'projects:clusters:create_gcp',\n 'projects:clusters:create_user',\n ];\n\n if (newClusterViews.indexOf(page) > -1) {\n initDismissableCallout('.gcp-signup-offer');\n initGkeDropdowns();\n }\n\n new Project(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n});\n","module.exports = require('./lib/visibility.timers.js')\n","/**\n * exports HTTP status codes\n */\n\nconst httpStatusCodes = {\n ABORTED: 0,\n OK: 200,\n CREATED: 201,\n ACCEPTED: 202,\n NON_AUTHORITATIVE_INFORMATION: 203,\n NO_CONTENT: 204,\n RESET_CONTENT: 205,\n PARTIAL_CONTENT: 206,\n MULTI_STATUS: 207,\n ALREADY_REPORTED: 208,\n IM_USED: 226,\n MULTIPLE_CHOICES: 300,\n BAD_REQUEST: 400,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n UNPROCESSABLE_ENTITY: 422,\n};\n\nexport const successCodes = [\n httpStatusCodes.OK,\n httpStatusCodes.CREATED,\n httpStatusCodes.ACCEPTED,\n httpStatusCodes.NON_AUTHORITATIVE_INFORMATION,\n httpStatusCodes.NO_CONTENT,\n httpStatusCodes.RESET_CONTENT,\n httpStatusCodes.PARTIAL_CONTENT,\n httpStatusCodes.MULTI_STATUS,\n httpStatusCodes.ALREADY_REPORTED,\n httpStatusCodes.IM_USED,\n];\n\nexport default httpStatusCodes;\n","import { formatDate, getTimeago } from '../../lib/utils/datetime_utility';\n\n/**\n * Mixin with time ago methods used in some vue components\n */\nexport default {\n methods: {\n timeFormated(time) {\n const timeago = getTimeago();\n\n return timeago.format(time);\n },\n\n tooltipTitle(time) {\n return formatDate(time);\n },\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:_vm.cssClass},[_c('icon',{attrs:{\"name\":_vm.icon,\"size\":_vm.size}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ci_icon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ci_icon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ci_icon.vue?vue&type=template&id=4732472a&\"\nimport script from \"./ci_icon.vue?vue&type=script&lang=js&\"\nexport * from \"./ci_icon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"ci_icon.vue\"\nexport default component.exports","import httpStatusCodes, { successCodes } from './http_status';\nimport { normalizeHeaders } from './common_utils';\n\n/**\n * Polling utility for handling realtime updates.\n * Requirements: Promise based HTTP client\n *\n * Service for promise based http client and method need to be provided as props\n *\n * @example\n * new Poll({\n * resource: resource,\n * method: 'name',\n * data: {page: 1, scope: 'all'}, // optional\n * successCallback: () => {},\n * errorCallback: () => {},\n * notificationCallback: () => {}, // optional\n * }).makeRequest();\n *\n * Usage in pipelines table with visibility lib:\n *\n * const poll = new Poll({\n * resource: this.service,\n * method: 'getPipelines',\n * data: { page: pageNumber, scope },\n * successCallback: this.successCallback,\n * errorCallback: this.errorCallback,\n * notificationCallback: this.updateLoading,\n * });\n *\n * if (!Visibility.hidden()) {\n * poll.makeRequest();\n * }\n *\n * Visibility.change(() => {\n * if (!Visibility.hidden()) {\n * poll.restart();\n * } else {\n * poll.stop();\n * }\n * });\n *\n * 1. Checks for response and headers before start polling\n * 2. Interval is provided by `Poll-Interval` header.\n * 3. If `Poll-Interval` is -1, we stop polling\n * 4. If HTTP response is 200, we poll.\n * 5. If HTTP response is different from 200, we stop polling.\n *\n */\nexport default class Poll {\n constructor(options = {}) {\n this.options = options;\n this.options.data = options.data || {};\n this.options.notificationCallback =\n options.notificationCallback || function notificationCallback() {};\n\n this.intervalHeader = 'POLL-INTERVAL';\n this.timeoutID = null;\n this.canPoll = true;\n }\n\n checkConditions(response) {\n const headers = normalizeHeaders(response.headers);\n const pollInterval = parseInt(headers[this.intervalHeader], 10);\n if (pollInterval > 0 && successCodes.indexOf(response.status) !== -1 && this.canPoll) {\n this.timeoutID = setTimeout(() => {\n this.makeRequest();\n }, pollInterval);\n }\n this.options.successCallback(response);\n }\n\n makeRequest() {\n const { resource, method, data, errorCallback, notificationCallback } = this.options;\n\n // It's called everytime a new request is made. Useful to update the status.\n notificationCallback(true);\n\n return resource[method](data)\n .then(response => {\n this.checkConditions(response);\n notificationCallback(false);\n })\n .catch(error => {\n notificationCallback(false);\n if (error.status === httpStatusCodes.ABORTED) {\n return;\n }\n errorCallback(error);\n });\n }\n\n /**\n * Stops the polling recursive chain\n * and guarantees if the timeout is already running it won't make another request by\n * cancelling the previously established timeout.\n */\n stop() {\n this.canPoll = false;\n clearTimeout(this.timeoutID);\n }\n\n /**\n * Restarts polling after it has been stoped\n */\n restart(options) {\n // update data\n if (options && options.data) {\n this.options.data = options.data;\n }\n\n this.canPoll = true;\n this.makeRequest();\n }\n}\n"],"sourceRoot":""}