{"version":3,"sources":["webpack:///./pages/projects/jobs/index/index.js","webpack:///./vue_shared/components/gl_countdown.vue?c429","webpack:///./vue_shared/components/gl_countdown.vue?003c","webpack:///vue_shared/components/gl_countdown.vue","webpack:///./vue_shared/components/gl_countdown.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"],"names":["document","addEventListener","querySelectorAll","forEach","el","Vue","_objectSpread","GlCountdown","propsData","endDateString","dateTime","components_gl_countdownvue_type_script_lang_js_","directives","GlTooltip","props","type","String","required","validator","value","Number","isNaN","Date","getTime","data","remainingTime","Object","datetime_utility","countdownUpdateIntervalId","mounted","_this","this","updateRemainingTime","remainingMilliseconds","window","setInterval","beforeDestroy","clearInterval","component","componentNormalizer","_h","$createElement","_self","_c","name","rawName","attrs","datetime","title","_v","_s","options","__file","__webpack_exports__","ShortcutsNavigation","_classCallCheck","_possibleConstructorReturn","_getPrototypeOf","call","Mousetrap","bind","findAndFollowLink","enabledHelp","push","Shortcuts","ProjectSelectComboButton","select","projectSelectInput","$","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","siblings","on","e","openDropdown","getProjectFromLocalStorage","preventDefault","selectProject","AccessorUtilities","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","event","currentTarget","select2","selectedProjectData","JSON","parse","val","projectMeta","url","concat","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","withShared","undefined","includeProjectsInSubgroups","allowClear","minimumInputLength","query","finalCallback","projectsCallback","projects","results","callback","groupsCallback","groups","Api","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","with_shared","include_subgroups","order_by","membership","id","web_url","name_with_namespace","initSelection","then","_ref","dropdownCssClass","__webpack_require__","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","href","$dropdown","selected","glDropdown","axios","get","params","ref","search","catch","flash","__","selectable","filterable","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","header","className","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"],"mappings":"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","file":"pages.projects.jobs.index.84c1aac4.chunk.js","sourcesContent":["import Vue from 'vue';\nimport GlCountdown from '~/vue_shared/components/gl_countdown.vue';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const remainingTimeElements = document.querySelectorAll('.js-remaining-time');\n remainingTimeElements.forEach(\n el =>\n new Vue({\n ...GlCountdown,\n el,\n propsData: {\n endDateString: el.dateTime,\n },\n }),\n );\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('time',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"datetime\":_vm.endDateString,\"title\":_vm.endDateString}},[_vm._v(\" \"+_vm._s(_vm.remainingTime)+\" \")])}\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!./gl_countdown.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!./gl_countdown.vue?vue&type=script&lang=js&\"","\n\n\n \n\n","import { render, staticRenderFns } from \"./gl_countdown.vue?vue&type=template&id=c67d2bc8&\"\nimport script from \"./gl_countdown.vue?vue&type=script&lang=js&\"\nexport * from \"./gl_countdown.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 = \"gl_countdown.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"],"sourceRoot":""}