{"version":3,"sources":["webpack:///./lib/utils/poll.js","webpack:///./vue_shared/components/loading_button.vue?92db","webpack:///./vue_shared/components/loading_button.vue?93b7","webpack:///vue_shared/components/loading_button.vue","webpack:///./vue_shared/components/loading_button.vue","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/lib/visibility.timers.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/lib/visibility.core.js","webpack:///./jobs/mixins/delayed_job_mixin.js","webpack:///./vue_shared/components/ci_badge_link.vue?829c","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/components/ci_icon.vue?89ed","webpack:///vue_shared/components/ci_icon.vue","webpack:///./vue_shared/components/ci_icon.vue?1dcc","webpack:///./vue_shared/components/ci_icon.vue","webpack:///./vue_shared/mixins/timeago.js"],"names":["Poll","options","arguments","length","undefined","_classCallCheck","this","data","notificationCallback","intervalHeader","timeoutID","canPoll","response","_this","headers","normalizeHeaders","pollInterval","parseInt","successCodes","indexOf","status","clearTimeout","setTimeout","makeRequest","successCallback","_this2","_this$options","resource","method","errorCallback","then","checkConditions","catch","error","httpStatusCodes","ABORTED","enable","components_loading_buttonvue_type_script_lang_js_","components","GlLoadingIcon","props","loading","type","Boolean","required","default","disabled","label","String","containerClass","Array","Object","methods","onClick","e","$emit","component","componentNormalizer","_vm","_h","$createElement","_c","_self","class","attrs","on","click","name","staticClass","append-right-5","inline","_e","_v","_t","_s","__file","__webpack_exports__","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","setInterval","clearInterval","event","isHidden","wasHidden","i","module","exports","__webpack_require__","global","lastId","self","onVisible","support","listener","state","unbind","_callbacks","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","document","_change","_init","apply","addEventListener","attachEvent","_lib_utils_datetime_utility__WEBPACK_IMPORTED_MODULE_0__","remainingTime","formatTime","remainingTimeIntervalId","mounted","startRemainingTimeInterval","beforeDestroy","computed","isDelayedJob","job","scheduled","watch","updateRemainingTime","remainingMilliseconds","calculateRemainingMilliseconds","scheduled_at","components_ci_badge_linkvue_type_script_lang_js_","CiIcon","directives","GlTooltip","dist","showText","cssClass","className","group","concat","rawName","href","details_path","title","text","ShortcutsNavigation","_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","t","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","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","_ref","dropdownCssClass","d","Project","$cloneOptions","$projectCloneField","$cloneBtnLabel","mobileCloneField","querySelector","selectedCloneOption","trim","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","flash","__","selectable","filterable","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","header","textContent","link","appendChild","obj","toggleLabel","clicked","$form","$visit","shouldVisit","action","divider","visitUrl","serialize","r","_projects_gke_cluster_dropdowns__WEBPACK_IMPORTED_MODULE_0__","_persistent_user_callout__WEBPACK_IMPORTED_MODULE_1__","_project__WEBPACK_IMPORTED_MODULE_2__","_behaviors_shortcuts_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_3__","page","body","callout","PersistentUserCallout","factory","initGkeDropdowns","OK","CREATED","ACCEPTED","NON_AUTHORITATIVE_INFORMATION","NO_CONTENT","RESET_CONTENT","PARTIAL_CONTENT","MULTI_STATUS","ALREADY_REPORTED","IM_USED","MULTIPLE_CHOICES","BAD_REQUEST","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","UNPROCESSABLE_ENTITY","validSizes","components_ci_iconvue_type_script_lang_js_","Icon","icon","size","Number","validator","value","includes","borderless","cssClasses","css-classes","timeFormated","time","getTimeago","format","tooltipTitle","formatDate"],"mappings":"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","file":"commons~pages.projects.commit.pipelines~pages.projects.jobs.show~pages.projects.pipelines.builds~pag~607ad509.9f0f3812.chunk.js","sourcesContent":["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 if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n }\n\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 * Enables polling after it has been stopped\n */\n enable(options) {\n if (options && options.data) {\n this.options.data = options.data;\n }\n\n this.canPoll = true;\n\n if (options && options.response) {\n this.checkConditions(options.response);\n }\n }\n\n /**\n * Restarts polling after it has been stopped and makes a request\n */\n restart(options) {\n this.enable(options);\n this.makeRequest();\n }\n}\n","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",";(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","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","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 r', () => findAndFollowLink('.shortcuts-project-releases'));\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 import(/* webpackChunkName: 'select2' */ 'select2/select2')\n .then(() => {\n $(event.currentTarget)\n .siblings('.project-item-select')\n .select2('open');\n })\n .catch(() => {});\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 import(/* webpackChunkName: 'select2' */ 'select2/select2')\n .then(() => {\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 .catch(() => {});\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 initGkeDropdowns from '~/projects/gke_cluster_dropdowns';\nimport PersistentUserCallout from '../../persistent_user_callout';\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 const callout = document.querySelector('.gcp-signup-offer');\n PersistentUserCallout.factory(callout);\n\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 UNAUTHORIZED: 401,\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","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,\"css-classes\":_vm.cssClasses}})],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=0a2f2b13&\"\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 { 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"],"sourceRoot":""}