{"version":3,"sources":["webpack:///./new_commit_form.js","webpack:///./pages/projects/tree/show/index.js","webpack:///./lib/utils/ace_utils.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/lib/visibility.timers.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/lib/visibility.core.js","webpack:///./blob/viewer/index.js","webpack:///./blob/file_template_selector.js","webpack:///./blob/template_selectors/type_selector.js","webpack:///./blob/template_selectors/ci_yaml_selector.js","webpack:///./blob/template_selectors/dockerfile_selector.js","webpack:///./blob/template_selectors/gitignore_selector.js","webpack:///./blob/template_selectors/license_selector.js","webpack:///./blob/file_template_mediator.js","webpack:///./blob_edit/edit_blob.js","webpack:///./blob/blob_file_dropzone.js","webpack:///./blob_edit/blob_bundle.js","webpack:///./gpg_badges.js","webpack:///./behaviors/shortcuts/shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:///./projects/tree/components/commit_pipeline_status_component.vue?8dfc","webpack:///./projects/tree/services/commit_pipeline_service.js","webpack:///./projects/tree/components/commit_pipeline_status_component.vue?8852","webpack:///projects/tree/components/commit_pipeline_status_component.vue","webpack:///./projects/tree/components/commit_pipeline_status_component.vue","webpack:///./vue_shared/directives/tooltip.js","webpack:///./pages/projects/index.js","webpack:///./tree.js","webpack:///./lib/utils/constants.js","webpack:////builds/gitlab/gitlabhq/node_modules/visibilityjs/index.js","webpack:///./lib/utils/http_status.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":["NewCommitForm","form","_classCallCheck","this","renderDestination","bind","branchName","find","originalBranch","createMergeRequest","createMergeRequestContainer","keyup","different","val","show","wasDifferent","prop","hide","__webpack_require__","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","vue__WEBPACK_IMPORTED_MODULE_1__","_blob_edit_blob_bundle__WEBPACK_IMPORTED_MODULE_2__","_projects_tree_components_commit_pipeline_status_component_vue__WEBPACK_IMPORTED_MODULE_3__","_gpg_badges__WEBPACK_IMPORTED_MODULE_4__","_tree__WEBPACK_IMPORTED_MODULE_5__","_behaviors_shortcuts_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_6__","_blob_viewer__WEBPACK_IMPORTED_MODULE_7__","_new_commit_form__WEBPACK_IMPORTED_MODULE_8__","_lib_utils_common_utils__WEBPACK_IMPORTED_MODULE_9__","document","addEventListener","ShortcutsNavigation","TreeView","BlobViewer","$","waitForImages","ajaxGet","querySelector","dataset","logsPath","initBlob","commitPipelineStatusEl","statusLink","remove","Vue","el","components","commitPipelineStatus","render","createElement","props","endpoint","GpgBadges","fetch","getModeByFileExtension","path","ace","require","getModeForPath","mode","d","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","setInterval","clearInterval","clearTimeout","event","isHidden","wasHidden","i","module","exports","global","lastId","self","onVisible","support","listener","e","state","unbind","_callbacks","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","_change","_init","apply","arguments","attachEvent","initAuxiliaryViewer","initRichViewer","initMainViewers","auxiliaryViewer","loadViewer","viewer","richType","initViewer","promise","then","default","catch","error","Flash","Promise","all","viewerParam","url","getAttribute","resolve","setAttribute","axios","get","_ref","data","innerHTML","html","$fileHolder","length","switcher","switcherBtns","querySelectorAll","copySourceBtn","simpleViewer","richViewer","initBindings","switchToInitialViewer","initialViewerName","location","hash","indexOf","switchToViewer","_this","Array","from","forEach","switchViewHandler","classList","contains","blur","target","currentTarget","preventDefault","activeViewer","add","tooltip","name","_this2","newViewer","concat","oldButton","newButton","oldViewer","toggleCopyButtonState","renderGFM","trigger","handleLocationHash","FileTemplateSelector","mediator","$dropdown","$wrapper","cfg","config","dropdown","wrapper","$loadingIcon","$dropdownToggleText","initDropdown","init","removeClass","addClass","hasClass","text","options","query","selectTemplateFile","opts","selectedObj","reportSelection","FileTemplateTypeSelector","dropdownData","type_selector_classCallCheck","_possibleConstructorReturn","_getPrototypeOf","glDropdown","filterable","selectable","toggleLabel","item","clicked","selectTemplateTypeOptions","BlobCiYamlSelector","ci_yaml_selector_classCallCheck","ci_yaml_selector_possibleConstructorReturn","ci_yaml_selector_getPrototypeOf","key","pattern","type","search","fields","reportSelectionName","DockerfileSelector","dockerfile_selector_classCallCheck","dockerfile_selector_possibleConstructorReturn","dockerfile_selector_getPrototypeOf","BlobGitignoreSelector","gitignore_selector_classCallCheck","gitignore_selector_possibleConstructorReturn","gitignore_selector_getPrototypeOf","BlobLicenseSelector","license_selector_classCallCheck","license_selector_possibleConstructorReturn","license_selector_getPrototypeOf","$el","project","fullname","FileTemplateMediator","editor","currentAction","projectId","file_template_mediator_classCallCheck","initTemplateSelectors","initTemplateTypeSelector","initDomElements","initDropdowns","initPageEvents","templateSelectors","GitignoreSelector","LicenseSelector","map","TemplateSelectorClass","typeSelector","templateSelector","$templatesMenu","$undoMenu","$fileEditor","$undoBtn","$templateSelectors","$filenameInput","$fileContent","$commitForm","$navLinks","hideTemplateSelectorMenu","displayMatchedTemplateSelector","listenForFilenameInput","prepFileContentForSubmit","listenForPreviewMode","on","_this3","submit","getValue","_this4","href","split","showTemplateSelectorMenu","selector","setToggleText","cacheToggleText","selectTemplateType","_this5","renderLoading","destroyUndoMenu","fetchFileTemplate","file","showUndoMenu","setEditorContent","setFilename","renderLoaded","err","_this6","currentInput","getFilename","test","_this7","undefined","Api","projectTemplate","newValue","content","setValue","focus","navigateFileStart","_this8","restoreFromCache","cacheFileContents","off","cachedToggleText","getTemplateSelectorToggleText","cachedContent","cachedFilename","setTemplateSelectorToggleText","getToggleText","selected","EditBlob","assetsPath","aceMode","edit_blob_classCallCheck","configureAceEditor","initModePanesAndLinks","initSoftWrap","initFileSelectors","filePath","set","loadModule","edit","$blockScrolling","Infinity","getSession","setMode","fileTemplateMediator","TemplateSelectorMediator","$editModePanes","$editModeLinks","editModeLinkClickHandler","currentLink","paneId","attr","currentPane","filter","parent","fadeIn","$toggleButton","post","empty","append","createFlash","__","isSoftWrapped","toggleSoftWrap","toggleClass","setUseWrapMode","toggleLoading","$icon","loading","disable","HIDDEN_CLASS","enable","Dropzone","autoDiscover","BlobFileDropzone","method","blob_file_dropzone_classCallCheck","formDropzone","submitButton","submitButtonLoadingIcon","dropzoneMessage","dropzone","autoProcessQueue","clickable","uploadMultiple","paramName","maxFilesize","gon","max_file_size","parallelUploads","maxFiles","addRemoveLinks","previewsContainer","headers","csrf","header","response","modal","visitUrl","removeFile","xhr","formData","errorMessage","stripped","stopPropagation","getQueuedFiles","alert","processQueue","editBlobForm","uploadBlobForm","deleteBlobForm","urlRoot","onbeforeunload","gl","utils","disableButtonIfEmptyField","tag","badges","displayError","reject","Error","params","parseQueryStringIntoObject","serialize","signatures","signature","commit_sha","replaceWith","Mousetrap","findAndFollowLink","enabledHelp","push","Shortcuts","ProjectSelectComboButton","select","projectSelectInput","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","siblings","openDropdown","getProjectFromLocalStorage","selectProject","AccessorUtilities","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","select2","selectedProjectData","JSON","parse","projectMeta","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","stringify","setItem","slice","projectSelect","each","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","withShared","includeProjectsInSubgroups","allowClear","minimumInputLength","finalCallback","projectsCallback","projects","results","groupsCallback","groups","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","with_shared","include_subgroups","order_by","membership","web_url","name_with_namespace","initSelection","dropdownCssClass","Project","$cloneOptions","$projectCloneField","$cloneBtnLabel","mobileCloneField","selectedCloneOption","trim","$this","cloneType","activeText","$label","closest","clipboardText","initRefSwitcher","parents","Cookies","cookieKey","projectSelectDropdown","changeProject","refListItem","refLink","ref","flash","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","className","textContent","link","appendChild","obj","$form","$visit","shouldVisit","action","divider","CommitPipelineService","components_commit_pipeline_status_componentvue_type_script_lang_js_","directives","ciIcon","ci_icon","GlLoadingIcon","dist","String","required","ciStatus","isLoading","computed","statusTitle","Object","locale","commitText","mounted","service","commit_pipeline_service_CommitPipelineService","initPolling","methods","successCallback","res","pipelines","details","status","errorCallback","icon","group","poll","resource","visibilityjs_default","a","fetchPipelineCommitData","makeRequest","restart","fetchData","destroy","component","componentNormalizer","_h","$createElement","_c","_self","staticClass","attrs","size","label","details_path","rawName","title","aria-label","data-container","__file","componentUpdated","tooltipInstance","tip","getTipElement","setElementContent","getTitle","_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","initKeyNav","$clickedEl","is","metaKey","which","open","liSelected","keydown","next","eq","prev","BYTES_IN_KIB","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","validSizes","components_ci_iconvue_type_script_lang_js_","Icon","Number","validator","value","includes","borderless","Boolean","cssClass","class","Poll","notificationCallback","intervalHeader","timeoutID","canPoll","normalizeHeaders","pollInterval","parseInt","_this$options","checkConditions"],"mappings":"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","file":"pages.projects.tree.show.194148ee.chunk.js","sourcesContent":["/* eslint-disable no-var, no-return-assign */\nexport default class NewCommitForm {\n constructor(form) {\n this.form = form;\n this.renderDestination = this.renderDestination.bind(this);\n this.branchName = form.find('.js-branch-name');\n this.originalBranch = form.find('.js-original-branch');\n this.createMergeRequest = form.find('.js-create-merge-request');\n this.createMergeRequestContainer = form.find('.js-create-merge-request-container');\n this.branchName.keyup(this.renderDestination);\n this.renderDestination();\n }\n renderDestination() {\n var different;\n different = this.branchName.val() !== this.originalBranch.val();\n if (different) {\n this.createMergeRequestContainer.show();\n if (!this.wasDifferent) {\n this.createMergeRequest.prop('checked', true);\n }\n } else {\n this.createMergeRequestContainer.hide();\n this.createMergeRequest.prop('checked', false);\n }\n return (this.wasDifferent = different);\n }\n}\n","import $ from 'jquery';\nimport Vue from 'vue';\nimport initBlob from '~/blob_edit/blob_bundle';\nimport commitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue';\nimport GpgBadges from '~/gpg_badges';\nimport TreeView from '../../../../tree';\nimport ShortcutsNavigation from '../../../../behaviors/shortcuts/shortcuts_navigation';\nimport BlobViewer from '../../../../blob/viewer';\nimport NewCommitForm from '../../../../new_commit_form';\nimport { ajaxGet } from '../../../../lib/utils/common_utils';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new ShortcutsNavigation(); // eslint-disable-line no-new\n new TreeView(); // eslint-disable-line no-new\n new BlobViewer(); // eslint-disable-line no-new\n new NewCommitForm($('.js-create-dir-form')); // eslint-disable-line no-new\n $('#tree-slider').waitForImages(() =>\n ajaxGet(document.querySelector('.js-tree-content').dataset.logsPath),\n );\n\n initBlob();\n const commitPipelineStatusEl = document.querySelector('.js-commit-pipeline-status');\n const statusLink = document.querySelector('.commit-actions .ci-status-link');\n if (statusLink != null) {\n statusLink.remove();\n // eslint-disable-next-line no-new\n new Vue({\n el: commitPipelineStatusEl,\n components: {\n commitPipelineStatus,\n },\n render(createElement) {\n return createElement('commit-pipeline-status', {\n props: {\n endpoint: commitPipelineStatusEl.dataset.endpoint,\n },\n });\n },\n });\n }\n\n GpgBadges.fetch();\n});\n","/* global ace */\n\nexport default function getModeByFileExtension(path) {\n const modelist = ace.require('ace/ext/modelist');\n return modelist.getModeForPath(path).mode;\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","import $ from 'jquery';\nimport Flash from '../../flash';\nimport { handleLocationHash } from '../../lib/utils/common_utils';\nimport axios from '../../lib/utils/axios_utils';\n\nexport default class BlobViewer {\n constructor() {\n BlobViewer.initAuxiliaryViewer();\n BlobViewer.initRichViewer();\n\n this.initMainViewers();\n }\n\n static initAuxiliaryViewer() {\n const auxiliaryViewer = document.querySelector('.blob-viewer[data-type=\"auxiliary\"]');\n if (!auxiliaryViewer) return;\n\n BlobViewer.loadViewer(auxiliaryViewer);\n }\n\n static initRichViewer() {\n const viewer = document.querySelector('.blob-viewer[data-type=\"rich\"]');\n if (!viewer || !viewer.dataset.richType) return;\n\n const initViewer = promise =>\n promise\n .then(module => module.default(viewer))\n .catch(error => {\n Flash('Error loading file viewer.');\n throw error;\n });\n\n switch (viewer.dataset.richType) {\n case 'balsamiq':\n initViewer(import(/* webpackChunkName: 'balsamiq_viewer' */ '../balsamiq_viewer'));\n break;\n case 'notebook':\n initViewer(import(/* webpackChunkName: 'notebook_viewer' */ '../notebook_viewer'));\n break;\n case 'pdf':\n initViewer(import(/* webpackChunkName: 'pdf_viewer' */ '../pdf_viewer'));\n break;\n case 'sketch':\n initViewer(import(/* webpackChunkName: 'sketch_viewer' */ '../sketch_viewer'));\n break;\n case 'stl':\n initViewer(import(/* webpackChunkName: 'stl_viewer' */ '../stl_viewer'));\n break;\n default:\n break;\n }\n }\n\n initMainViewers() {\n this.$fileHolder = $('.file-holder');\n if (!this.$fileHolder.length) return;\n\n this.switcher = document.querySelector('.js-blob-viewer-switcher');\n this.switcherBtns = document.querySelectorAll('.js-blob-viewer-switch-btn');\n this.copySourceBtn = document.querySelector('.js-copy-blob-source-btn');\n\n this.simpleViewer = this.$fileHolder[0].querySelector('.blob-viewer[data-type=\"simple\"]');\n this.richViewer = this.$fileHolder[0].querySelector('.blob-viewer[data-type=\"rich\"]');\n\n this.initBindings();\n\n this.switchToInitialViewer();\n }\n\n switchToInitialViewer() {\n const initialViewer = this.$fileHolder[0].querySelector('.blob-viewer:not(.hidden)');\n let initialViewerName = initialViewer.getAttribute('data-type');\n\n if (this.switcher && window.location.hash.indexOf('#L') === 0) {\n initialViewerName = 'simple';\n }\n\n this.switchToViewer(initialViewerName);\n }\n\n initBindings() {\n if (this.switcherBtns.length) {\n Array.from(this.switcherBtns).forEach(el => {\n el.addEventListener('click', this.switchViewHandler.bind(this));\n });\n }\n\n if (this.copySourceBtn) {\n this.copySourceBtn.addEventListener('click', () => {\n if (this.copySourceBtn.classList.contains('disabled')) return this.copySourceBtn.blur();\n\n return this.switchToViewer('simple');\n });\n }\n }\n\n switchViewHandler(e) {\n const target = e.currentTarget;\n\n e.preventDefault();\n\n this.switchToViewer(target.getAttribute('data-viewer'));\n }\n\n toggleCopyButtonState() {\n if (!this.copySourceBtn) return;\n\n if (this.simpleViewer.getAttribute('data-loaded')) {\n this.copySourceBtn.setAttribute('title', 'Copy source to clipboard');\n this.copySourceBtn.classList.remove('disabled');\n } else if (this.activeViewer === this.simpleViewer) {\n this.copySourceBtn.setAttribute(\n 'title',\n 'Wait for the source to load to copy it to the clipboard',\n );\n this.copySourceBtn.classList.add('disabled');\n } else {\n this.copySourceBtn.setAttribute('title', 'Switch to the source to copy it to the clipboard');\n this.copySourceBtn.classList.add('disabled');\n }\n\n $(this.copySourceBtn).tooltip('_fixTitle');\n }\n\n switchToViewer(name) {\n const newViewer = this.$fileHolder[0].querySelector(`.blob-viewer[data-type='${name}']`);\n if (this.activeViewer === newViewer) return;\n\n const oldButton = document.querySelector('.js-blob-viewer-switch-btn.active');\n const newButton = document.querySelector(`.js-blob-viewer-switch-btn[data-viewer='${name}']`);\n const oldViewer = this.$fileHolder[0].querySelector(`.blob-viewer:not([data-type='${name}'])`);\n\n if (oldButton) {\n oldButton.classList.remove('active');\n }\n\n if (newButton) {\n newButton.classList.add('active');\n newButton.blur();\n }\n\n if (oldViewer) {\n oldViewer.classList.add('hidden');\n }\n\n newViewer.classList.remove('hidden');\n\n this.activeViewer = newViewer;\n\n this.toggleCopyButtonState();\n\n BlobViewer.loadViewer(newViewer)\n .then(viewer => {\n $(viewer).renderGFM();\n\n this.$fileHolder.trigger('highlight:line');\n handleLocationHash();\n\n this.toggleCopyButtonState();\n })\n .catch(() => new Flash('Error loading viewer'));\n }\n\n static loadViewer(viewerParam) {\n const viewer = viewerParam;\n const url = viewer.getAttribute('data-url');\n\n if (!url || viewer.getAttribute('data-loaded') || viewer.getAttribute('data-loading')) {\n return Promise.resolve(viewer);\n }\n\n viewer.setAttribute('data-loading', 'true');\n\n return axios.get(url).then(({ data }) => {\n viewer.innerHTML = data.html;\n viewer.setAttribute('data-loaded', 'true');\n\n return viewer;\n });\n }\n}\n","import $ from 'jquery';\n\nexport default class FileTemplateSelector {\n constructor(mediator) {\n this.mediator = mediator;\n this.$dropdown = null;\n this.$wrapper = null;\n }\n\n init() {\n const cfg = this.config;\n\n this.$dropdown = $(cfg.dropdown);\n this.$wrapper = $(cfg.wrapper);\n this.$loadingIcon = this.$wrapper.find('.fa-chevron-down');\n this.$dropdownToggleText = this.$wrapper.find('.dropdown-toggle-text');\n\n this.initDropdown();\n }\n\n show() {\n if (this.$dropdown === null) {\n this.init();\n }\n\n this.$wrapper.removeClass('hidden');\n }\n\n hide() {\n if (this.$dropdown !== null) {\n this.$wrapper.addClass('hidden');\n }\n }\n\n isHidden() {\n return this.$wrapper.hasClass('hidden');\n }\n\n getToggleText() {\n return this.$dropdownToggleText.text();\n }\n\n setToggleText(text) {\n this.$dropdownToggleText.text(text);\n }\n\n renderLoading() {\n this.$loadingIcon.addClass('fa-spinner fa-spin').removeClass('fa-chevron-down');\n }\n\n renderLoaded() {\n this.$loadingIcon.addClass('fa-chevron-down').removeClass('fa-spinner fa-spin');\n }\n\n reportSelection(options) {\n const { query, e, data } = options;\n e.preventDefault();\n return this.mediator.selectTemplateFile(this, query, data);\n }\n\n reportSelectionName(options) {\n const opts = options;\n opts.query = options.selectedObj.name;\n\n this.reportSelection(opts);\n }\n}\n","import FileTemplateSelector from '../file_template_selector';\n\nexport default class FileTemplateTypeSelector extends FileTemplateSelector {\n constructor({ mediator, dropdownData }) {\n super(mediator);\n this.mediator = mediator;\n this.config = {\n dropdown: '.js-template-type-selector',\n wrapper: '.js-template-type-selector-wrap',\n dropdownData,\n };\n }\n\n initDropdown() {\n this.$dropdown.glDropdown({\n data: this.config.dropdownData,\n filterable: false,\n selectable: true,\n toggleLabel: item => item.name,\n clicked: options => this.mediator.selectTemplateTypeOptions(options),\n text: item => item.name,\n });\n }\n}\n","import FileTemplateSelector from '../file_template_selector';\n\nexport default class BlobCiYamlSelector extends FileTemplateSelector {\n constructor({ mediator }) {\n super(mediator);\n this.config = {\n key: 'gitlab-ci-yaml',\n name: '.gitlab-ci.yml',\n pattern: /(.gitlab-ci.yml)/,\n type: 'gitlab_ci_ymls',\n dropdown: '.js-gitlab-ci-yml-selector',\n wrapper: '.js-gitlab-ci-yml-selector-wrap',\n };\n }\n\n initDropdown() {\n // maybe move to super class as well\n this.$dropdown.glDropdown({\n data: this.$dropdown.data('data'),\n filterable: true,\n selectable: true,\n toggleLabel: item => item.name,\n search: {\n fields: ['name'],\n },\n clicked: options => this.reportSelectionName(options),\n text: item => item.name,\n });\n }\n}\n","import FileTemplateSelector from '../file_template_selector';\n\nexport default class DockerfileSelector extends FileTemplateSelector {\n constructor({ mediator }) {\n super(mediator);\n this.config = {\n key: 'dockerfile',\n name: 'Dockerfile',\n pattern: /(Dockerfile)/,\n type: 'dockerfiles',\n dropdown: '.js-dockerfile-selector',\n wrapper: '.js-dockerfile-selector-wrap',\n };\n }\n\n initDropdown() {\n // maybe move to super class as well\n this.$dropdown.glDropdown({\n data: this.$dropdown.data('data'),\n filterable: true,\n selectable: true,\n toggleLabel: item => item.name,\n search: {\n fields: ['name'],\n },\n clicked: options => this.reportSelectionName(options),\n text: item => item.name,\n });\n }\n}\n","import FileTemplateSelector from '../file_template_selector';\n\nexport default class BlobGitignoreSelector extends FileTemplateSelector {\n constructor({ mediator }) {\n super(mediator);\n this.config = {\n key: 'gitignore',\n name: '.gitignore',\n pattern: /(.gitignore)/,\n type: 'gitignores',\n dropdown: '.js-gitignore-selector',\n wrapper: '.js-gitignore-selector-wrap',\n };\n }\n\n initDropdown() {\n this.$dropdown.glDropdown({\n data: this.$dropdown.data('data'),\n filterable: true,\n selectable: true,\n toggleLabel: item => item.name,\n search: {\n fields: ['name'],\n },\n clicked: options => this.reportSelectionName(options),\n text: item => item.name,\n });\n }\n}\n","import FileTemplateSelector from '../file_template_selector';\n\nexport default class BlobLicenseSelector extends FileTemplateSelector {\n constructor({ mediator }) {\n super(mediator);\n this.config = {\n key: 'license',\n name: 'LICENSE',\n pattern: /^(.+\\/)?(licen[sc]e|copying)($|\\.)/i,\n type: 'licenses',\n dropdown: '.js-license-selector',\n wrapper: '.js-license-selector-wrap',\n };\n }\n\n initDropdown() {\n this.$dropdown.glDropdown({\n data: this.$dropdown.data('data'),\n filterable: true,\n selectable: true,\n toggleLabel: item => item.name,\n search: {\n fields: ['name'],\n },\n clicked: options => {\n const { e } = options;\n const el = options.$el;\n const query = options.selectedObj;\n\n const data = {\n project: this.$dropdown.data('project'),\n fullname: this.$dropdown.data('fullname'),\n };\n\n this.reportSelection({\n query: query.id,\n el,\n e,\n data,\n });\n },\n text: item => item.name,\n });\n }\n}\n","import Api from '~/api';\n\nimport $ from 'jquery';\nimport Flash from '../flash';\nimport FileTemplateTypeSelector from './template_selectors/type_selector';\nimport BlobCiYamlSelector from './template_selectors/ci_yaml_selector';\nimport DockerfileSelector from './template_selectors/dockerfile_selector';\nimport GitignoreSelector from './template_selectors/gitignore_selector';\nimport LicenseSelector from './template_selectors/license_selector';\n\nexport default class FileTemplateMediator {\n constructor({ editor, currentAction, projectId }) {\n this.editor = editor;\n this.currentAction = currentAction;\n this.projectId = projectId;\n\n this.initTemplateSelectors();\n this.initTemplateTypeSelector();\n this.initDomElements();\n this.initDropdowns();\n this.initPageEvents();\n }\n\n initTemplateSelectors() {\n // Order dictates template type dropdown item order\n this.templateSelectors = [\n GitignoreSelector,\n BlobCiYamlSelector,\n DockerfileSelector,\n LicenseSelector,\n ].map(TemplateSelectorClass => new TemplateSelectorClass({ mediator: this }));\n }\n\n initTemplateTypeSelector() {\n this.typeSelector = new FileTemplateTypeSelector({\n mediator: this,\n dropdownData: this.templateSelectors.map(templateSelector => {\n const cfg = templateSelector.config;\n\n return {\n name: cfg.name,\n key: cfg.key,\n };\n }),\n });\n }\n\n initDomElements() {\n const $templatesMenu = $('.template-selectors-menu');\n const $undoMenu = $templatesMenu.find('.template-selectors-undo-menu');\n const $fileEditor = $('.file-editor');\n\n this.$templatesMenu = $templatesMenu;\n this.$undoMenu = $undoMenu;\n this.$undoBtn = $undoMenu.find('button');\n this.$templateSelectors = $templatesMenu.find('.template-selector-dropdowns-wrap');\n this.$filenameInput = $fileEditor.find('.js-file-path-name-input');\n this.$fileContent = $fileEditor.find('#file-content');\n this.$commitForm = $fileEditor.find('form');\n this.$navLinks = $fileEditor.find('.nav-links');\n }\n\n initDropdowns() {\n if (this.currentAction === 'create') {\n this.typeSelector.show();\n } else {\n this.hideTemplateSelectorMenu();\n }\n\n this.displayMatchedTemplateSelector();\n }\n\n initPageEvents() {\n this.listenForFilenameInput();\n this.prepFileContentForSubmit();\n this.listenForPreviewMode();\n }\n\n listenForFilenameInput() {\n this.$filenameInput.on('keyup blur', () => {\n this.displayMatchedTemplateSelector();\n });\n }\n\n prepFileContentForSubmit() {\n this.$commitForm.submit(() => {\n this.$fileContent.val(this.editor.getValue());\n });\n }\n\n listenForPreviewMode() {\n this.$navLinks.on('click', 'a', e => {\n const urlPieces = e.target.href.split('#');\n const hash = urlPieces[1];\n if (hash === 'preview') {\n this.hideTemplateSelectorMenu();\n } else if (hash === 'editor' && !this.typeSelector.isHidden()) {\n this.showTemplateSelectorMenu();\n }\n });\n }\n\n selectTemplateType(item, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.templateSelectors.forEach(selector => {\n if (selector.config.key === item.key) {\n selector.show();\n } else {\n selector.hide();\n }\n });\n\n this.typeSelector.setToggleText(item.name);\n\n this.cacheToggleText();\n }\n\n selectTemplateTypeOptions(options) {\n this.selectTemplateType(options.selectedObj, options.e);\n }\n\n selectTemplateFile(selector, query, data) {\n selector.renderLoading();\n // in case undo menu is already there\n this.destroyUndoMenu();\n this.fetchFileTemplate(selector.config.type, query, data)\n .then(file => {\n this.showUndoMenu();\n this.setEditorContent(file);\n this.setFilename(selector.config.name);\n selector.renderLoaded();\n })\n .catch(err => new Flash(`An error occurred while fetching the template: ${err}`));\n }\n\n displayMatchedTemplateSelector() {\n const currentInput = this.getFilename();\n this.templateSelectors.forEach(selector => {\n const match = selector.config.pattern.test(currentInput);\n\n if (match) {\n this.typeSelector.show();\n this.selectTemplateType(selector.config);\n this.showTemplateSelectorMenu();\n }\n });\n }\n\n fetchFileTemplate(type, query, data = {}) {\n return new Promise(resolve => {\n const resolveFile = file => resolve(file);\n\n Api.projectTemplate(this.projectId, type, query, data, resolveFile);\n });\n }\n\n setEditorContent(file) {\n if (!file && file !== '') return;\n\n const newValue = file.content || file;\n\n this.editor.setValue(newValue, 1);\n\n this.editor.focus();\n\n this.editor.navigateFileStart();\n }\n\n findTemplateSelectorByKey(key) {\n return this.templateSelectors.find(selector => selector.config.key === key);\n }\n\n showUndoMenu() {\n this.$undoMenu.removeClass('hidden');\n\n this.$undoBtn.on('click', () => {\n this.restoreFromCache();\n this.destroyUndoMenu();\n });\n }\n\n destroyUndoMenu() {\n this.cacheFileContents();\n this.cacheToggleText();\n this.$undoMenu.addClass('hidden');\n this.$undoBtn.off('click');\n }\n\n hideTemplateSelectorMenu() {\n this.$templatesMenu.hide();\n }\n\n showTemplateSelectorMenu() {\n this.$templatesMenu.show();\n }\n\n cacheToggleText() {\n this.cachedToggleText = this.getTemplateSelectorToggleText();\n }\n\n cacheFileContents() {\n this.cachedContent = this.editor.getValue();\n this.cachedFilename = this.getFilename();\n }\n\n restoreFromCache() {\n this.setEditorContent(this.cachedContent);\n this.setFilename(this.cachedFilename);\n this.setTemplateSelectorToggleText();\n }\n\n getTemplateSelectorToggleText() {\n return this.$templateSelectors\n .find('.js-template-selector-wrap:visible .dropdown-toggle-text')\n .text();\n }\n\n setTemplateSelectorToggleText() {\n return this.$templateSelectors\n .find('.js-template-selector-wrap:visible .dropdown-toggle-text')\n .text(this.cachedToggleText);\n }\n\n getTypeSelectorToggleText() {\n return this.typeSelector.getToggleText();\n }\n\n getFilename() {\n return this.$filenameInput.val();\n }\n\n setFilename(name) {\n this.$filenameInput.val(name).trigger('change');\n }\n\n getSelected() {\n return this.templateSelectors.find(selector => selector.selected);\n }\n}\n","/* global ace */\n\nimport $ from 'jquery';\nimport axios from '~/lib/utils/axios_utils';\nimport createFlash from '~/flash';\nimport { __ } from '~/locale';\nimport TemplateSelectorMediator from '../blob/file_template_mediator';\nimport getModeByFileExtension from '~/lib/utils/ace_utils';\n\nexport default class EditBlob {\n constructor(assetsPath, aceMode, currentAction, projectId) {\n this.configureAceEditor(aceMode, assetsPath);\n this.initModePanesAndLinks();\n this.initSoftWrap();\n this.initFileSelectors(currentAction, projectId);\n }\n\n configureAceEditor(filePath, assetsPath) {\n ace.config.set('modePath', `${assetsPath}/ace`);\n ace.config.loadModule('ace/ext/searchbox');\n ace.config.loadModule('ace/ext/modelist');\n\n this.editor = ace.edit('editor');\n\n // This prevents warnings re: automatic scrolling being logged\n this.editor.$blockScrolling = Infinity;\n\n this.editor.focus();\n\n if (filePath) {\n this.editor.getSession().setMode(getModeByFileExtension(filePath));\n }\n }\n\n initFileSelectors(currentAction, projectId) {\n this.fileTemplateMediator = new TemplateSelectorMediator({\n currentAction,\n editor: this.editor,\n projectId,\n });\n }\n\n initModePanesAndLinks() {\n this.$editModePanes = $('.js-edit-mode-pane');\n this.$editModeLinks = $('.js-edit-mode a');\n this.$editModeLinks.on('click', e => this.editModeLinkClickHandler(e));\n }\n\n editModeLinkClickHandler(e) {\n e.preventDefault();\n\n const currentLink = $(e.target);\n const paneId = currentLink.attr('href');\n const currentPane = this.$editModePanes.filter(paneId);\n\n this.$editModeLinks.parent().removeClass('active hover');\n\n currentLink.parent().addClass('active hover');\n\n this.$editModePanes.hide();\n\n currentPane.fadeIn(200);\n\n if (paneId === '#preview') {\n this.$toggleButton.hide();\n axios\n .post(currentLink.data('previewUrl'), {\n content: this.editor.getValue(),\n })\n .then(({ data }) => {\n currentPane.empty().append(data);\n currentPane.renderGFM();\n })\n .catch(() => createFlash(__('An error occurred previewing the blob')));\n }\n\n this.$toggleButton.show();\n\n return this.editor.focus();\n }\n\n initSoftWrap() {\n this.isSoftWrapped = false;\n this.$toggleButton = $('.soft-wrap-toggle');\n this.$toggleButton.on('click', () => this.toggleSoftWrap());\n }\n\n toggleSoftWrap() {\n this.isSoftWrapped = !this.isSoftWrapped;\n this.$toggleButton.toggleClass('soft-wrap-active', this.isSoftWrapped);\n this.editor.getSession().setUseWrapMode(this.isSoftWrapped);\n }\n}\n","/* eslint-disable func-names, object-shorthand, prefer-arrow-callback */\n\nimport $ from 'jquery';\nimport Dropzone from 'dropzone';\nimport { visitUrl } from '../lib/utils/url_utility';\nimport { HIDDEN_CLASS } from '../lib/utils/constants';\nimport csrf from '../lib/utils/csrf';\n\nDropzone.autoDiscover = false;\n\nfunction toggleLoading($el, $icon, loading) {\n if (loading) {\n $el.disable();\n $icon.removeClass(HIDDEN_CLASS);\n } else {\n $el.enable();\n $icon.addClass(HIDDEN_CLASS);\n }\n}\nexport default class BlobFileDropzone {\n constructor(form, method) {\n const formDropzone = form.find('.dropzone');\n const submitButton = form.find('#submit-all');\n const submitButtonLoadingIcon = submitButton.find('.js-loading-icon');\n const dropzoneMessage = form.find('.dz-message');\n Dropzone.autoDiscover = false;\n\n const dropzone = formDropzone.dropzone({\n autoDiscover: false,\n autoProcessQueue: false,\n url: form.attr('action'),\n // Rails uses a hidden input field for PUT\n // http://stackoverflow.com/questions/21056482/how-to-set-method-put-in-form-tag-in-rails\n method: method,\n clickable: true,\n uploadMultiple: false,\n paramName: 'file',\n maxFilesize: gon.max_file_size || 10,\n parallelUploads: 1,\n maxFiles: 1,\n addRemoveLinks: true,\n previewsContainer: '.dropzone-previews',\n headers: csrf.headers,\n init: function() {\n this.on('addedfile', function() {\n toggleLoading(submitButton, submitButtonLoadingIcon, false);\n dropzoneMessage.addClass(HIDDEN_CLASS);\n $('.dropzone-alerts')\n .html('')\n .hide();\n });\n this.on('removedfile', function() {\n toggleLoading(submitButton, submitButtonLoadingIcon, false);\n dropzoneMessage.removeClass(HIDDEN_CLASS);\n });\n this.on('success', function(header, response) {\n $('#modal-upload-blob').modal('hide');\n visitUrl(response.filePath);\n });\n this.on('maxfilesexceeded', function(file) {\n dropzoneMessage.addClass(HIDDEN_CLASS);\n this.removeFile(file);\n });\n this.on('sending', function(file, xhr, formData) {\n formData.append('branch_name', form.find('.js-branch-name').val());\n formData.append('create_merge_request', form.find('.js-create-merge-request').val());\n formData.append('commit_message', form.find('.js-commit-message').val());\n });\n },\n // Override behavior of adding error underneath preview\n error: function(file, errorMessage) {\n const stripped = $('
')\n .html(errorMessage)\n .text();\n $('.dropzone-alerts')\n .html(`Error uploading file: \"${stripped}\"`)\n .show();\n this.removeFile(file);\n },\n });\n\n submitButton.on('click', e => {\n e.preventDefault();\n e.stopPropagation();\n if (dropzone[0].dropzone.getQueuedFiles().length === 0) {\n // eslint-disable-next-line no-alert\n alert('Please select a file');\n return false;\n }\n toggleLoading(submitButton, submitButtonLoadingIcon, true);\n dropzone[0].dropzone.processQueue();\n return false;\n });\n }\n}\n","/* eslint-disable no-new */\n\nimport $ from 'jquery';\nimport NewCommitForm from '../new_commit_form';\nimport EditBlob from './edit_blob';\nimport BlobFileDropzone from '../blob/blob_file_dropzone';\n\nexport default () => {\n const editBlobForm = $('.js-edit-blob-form');\n const uploadBlobForm = $('.js-upload-blob-form');\n const deleteBlobForm = $('.js-delete-blob-form');\n\n if (editBlobForm.length) {\n const urlRoot = editBlobForm.data('relativeUrlRoot');\n const assetsPath = editBlobForm.data('assetsPrefix');\n const filePath = editBlobForm.data('blobFilename');\n const currentAction = $('.js-file-title').data('currentAction');\n const projectId = editBlobForm.data('project-id');\n const commitButton = $('.js-commit-button');\n\n commitButton.on('click', () => {\n window.onbeforeunload = null;\n });\n\n new EditBlob(`${urlRoot}${assetsPath}`, filePath, currentAction, projectId);\n new NewCommitForm(editBlobForm);\n\n // returning here blocks page navigation\n window.onbeforeunload = () => '';\n }\n\n if (uploadBlobForm.length) {\n const method = uploadBlobForm.data('method');\n\n new BlobFileDropzone(uploadBlobForm, method);\n new NewCommitForm(uploadBlobForm);\n\n window.gl.utils.disableButtonIfEmptyField(\n uploadBlobForm.find('.js-commit-message'),\n '.btn-upload-file',\n );\n }\n\n if (deleteBlobForm.length) {\n new NewCommitForm(deleteBlobForm);\n }\n};\n","import $ from 'jquery';\nimport { parseQueryStringIntoObject } from '~/lib/utils/common_utils';\nimport axios from '~/lib/utils/axios_utils';\nimport createFlash from '~/flash';\nimport { __ } from '~/locale';\n\nexport default class GpgBadges {\n static fetch() {\n const tag = $('.js-signature-container');\n if (tag.length === 0) {\n return Promise.resolve();\n }\n\n const badges = $('.js-loading-gpg-badge');\n\n badges.html('');\n\n const displayError = () => createFlash(__('An error occurred while loading commit signatures'));\n\n const endpoint = tag.data('signaturesPath');\n if (!endpoint) {\n displayError();\n return Promise.reject(new Error('Missing commit signatures endpoint!'));\n }\n\n const params = parseQueryStringIntoObject(tag.serialize());\n return axios\n .get(endpoint, { params })\n .then(({ data }) => {\n data.signatures.forEach(signature => {\n badges.filter(`[data-commit-sha=\"${signature.commit_sha}\"]`).replaceWith(signature.html);\n });\n })\n .catch(displayError);\n }\n}\n","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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ci-status-link\"},[(_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":3,\"label\":\"Loading pipeline status\"}}):_c('a',{attrs:{\"href\":_vm.ciStatus.details_path}},[_c('ci-icon',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],attrs:{\"title\":_vm.statusTitle,\"aria-label\":_vm.statusTitle,\"status\":_vm.ciStatus,\"size\":24,\"data-container\":\"body\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '~/lib/utils/axios_utils';\n\nexport default class CommitPipelineService {\n constructor(endpoint) {\n this.endpoint = endpoint;\n }\n\n fetchData() {\n return axios.get(this.endpoint);\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!./commit_pipeline_status_component.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!./commit_pipeline_status_component.vue?vue&type=script&lang=js&\"","\n\n