{"version":3,"sources":["webpack:///./lib/utils/poll.js","webpack:///./vue_shared/directives/tooltip.js","webpack:///./new_commit_form.js","webpack:////opt/gitlab/embedded/service/gitlab-rails/node_modules/visibilityjs/lib/visibility.core.js","webpack:////opt/gitlab/embedded/service/gitlab-rails/node_modules/visibilityjs/lib/visibility.timers.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:///./blob/viewer/index.js","webpack:///./vue_shared/components/icon.vue?c951","webpack:///vue_shared/components/icon.vue","webpack:///./vue_shared/components/icon.vue?25af","webpack:///./vue_shared/components/icon.vue","webpack:///./projects/tree/components/commit_pipeline_status_component.vue?11da","webpack:///./projects/tree/services/commit_pipeline_service.js","webpack:///./projects/tree/components/commit_pipeline_status_component.vue?4e71","webpack:///projects/tree/components/commit_pipeline_status_component.vue","webpack:///./projects/tree/components/commit_pipeline_status_component.vue","webpack:///./tree.js","webpack:///./lib/utils/constants.js","webpack:////opt/gitlab/embedded/service/gitlab-rails/node_modules/visibilityjs/index.js","webpack:///./pages/projects/tree/show/index.js","webpack:///./lib/utils/http_status.js","webpack:///./vue_shared/components/ci_icon.vue?411a","webpack:///vue_shared/components/ci_icon.vue","webpack:///./vue_shared/components/ci_icon.vue?9b87","webpack:///./vue_shared/components/ci_icon.vue"],"names":["Poll","options","arguments","length","undefined","_classCallCheck","this","data","notificationCallback","intervalHeader","timeoutID","canPoll","response","_this","headers","Object","_common_utils__WEBPACK_IMPORTED_MODULE_1__","pollInterval","parseInt","status","_http_status__WEBPACK_IMPORTED_MODULE_0__","OK","setTimeout","makeRequest","successCallback","_this2","_options","resource","method","errorCallback","then","checkConditions","catch","error","ABORTED","clearTimeout","__webpack_exports__","bind","el","jquery__WEBPACK_IMPORTED_MODULE_0___default","tooltip","trigger","componentUpdated","unbind","NewCommitForm","form","renderDestination","branchName","find","originalBranch","createMergeRequest","createMergeRequestContainer","keyup","different","val","show","wasDifferent","prop","hide","global","lastId","self","onVisible","callback","support","isSupported","hidden","listener","change","e","state","number","_callbacks","_listen","id","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","document","_change","event","i","call","_init","apply","addEventListener","attachEvent","module","exports","Visibility","window","lastTimer","install","every","interval","hiddenInterval","_time","_timers","visible","_run","stop","_stop","_timed","_wasHidden","_stopRun","runNow","timer","runner","last","Date","delay","setInterval","clearInterval","isHidden","wasHidden","__webpack_require__","FileTemplateSelector","mediator","$dropdown","$wrapper","cfg","config","jquery_default","dropdown","wrapper","$loadingIcon","$dropdownToggleText","initDropdown","init","removeClass","addClass","hasClass","text","query","preventDefault","selectTemplateFile","opts","selectedObj","name","reportSelection","FileTemplateTypeSelector","_ref","dropdownData","type_selector_classCallCheck","_possibleConstructorReturn","__proto__","getPrototypeOf","file_template_selector","glDropdown","filterable","selectable","toggleLabel","item","clicked","selectTemplateTypeOptions","BlobCiYamlSelector","ci_yaml_selector_classCallCheck","ci_yaml_selector_possibleConstructorReturn","key","pattern","endpoint","api","gitlabCiYml","search","fields","reportSelectionName","DockerfileSelector","dockerfile_selector_classCallCheck","dockerfile_selector_possibleConstructorReturn","dockerfileYml","BlobGitignoreSelector","gitignore_selector_classCallCheck","gitignore_selector_possibleConstructorReturn","gitignoreText","BlobLicenseSelector","license_selector_classCallCheck","license_selector_possibleConstructorReturn","licenseText","$el","project","fullname","FileTemplateMediator","editor","currentAction","file_template_mediator_classCallCheck","initTemplateSelectors","initTemplateTypeSelector","initDomElements","initDropdowns","initPageEvents","templateSelectors","gitignore_selector","ci_yaml_selector","dockerfile_selector","license_selector","map","TemplateSelectorClass","typeSelector","type_selector","templateSelector","$templatesMenu","$undoMenu","$fileEditor","$undoBtn","$templateSelectors","$filenameInput","$fileContent","$commitForm","$navLinks","hideTemplateSelectorMenu","displayMatchedTemplateSelector","listenForFilenameInput","prepFileContentForSubmit","listenForPreviewMode","on","_this3","submit","getValue","_this4","hash","target","href","split","showTemplateSelectorMenu","forEach","selector","setToggleText","cacheToggleText","selectTemplateType","_this5","renderLoading","destroyUndoMenu","fetchFileTemplate","file","showUndoMenu","setEditorContent","setFilename","renderLoaded","err","flash","_this6","currentInput","getFilename","test","apiCall","Promise","resolve","resolveFile","newValue","content","setValue","focus","navigateFileStart","_this7","restoreFromCache","cacheFileContents","off","cachedToggleText","getTemplateSelectorToggleText","cachedContent","cachedFilename","setTemplateSelectorToggleText","getToggleText","selected","EditBlob","assetsPath","aceMode","edit_blob_classCallCheck","configureAceEditor","initModePanesAndLinks","initSoftWrap","initFileSelectors","ace","set","loadModule","edit","$blockScrolling","Infinity","getSession","setMode","fileTemplateMediator","file_template_mediator","$editModePanes","$editModeLinks","editModeLinkClickHandler","currentLink","paneId","attr","currentPane","filter","parent","fadeIn","$toggleButton","axios_utils","post","empty","append","renderGFM","locale","isSoftWrapped","toggleSoftWrap","toggleClass","setUseWrapMode","toggleLoading","$icon","loading","disable","constants","enable","dropzone_default","a","autoDiscover","BlobFileDropzone","blob_file_dropzone_classCallCheck","formDropzone","submitButton","submitButtonLoadingIcon","dropzoneMessage","dropzone","autoProcessQueue","url","clickable","uploadMultiple","paramName","maxFilesize","gon","max_file_size","parallelUploads","maxFiles","addRemoveLinks","previewsContainer","csrf","html","header","modal","url_utility","filePath","removeFile","xhr","formData","errorMessage","stripped","stopPropagation","getQueuedFiles","alert","processQueue","editBlobForm","uploadBlobForm","deleteBlobForm","urlRoot","blobLanguage","edit_blob","new_commit_form","blob_file_dropzone","gl","utils","disableButtonIfEmptyField","BlobViewer","initAuxiliaryViewer","initRichViewer","initMainViewers","$fileHolder","switcher","querySelector","switcherBtns","querySelectorAll","copySourceBtn","simpleViewer","richViewer","initBindings","switchToInitialViewer","initialViewerName","getAttribute","location","indexOf","switchToViewer","Array","from","switchViewHandler","classList","contains","blur","currentTarget","setAttribute","remove","activeViewer","add","newViewer","oldButton","newButton","oldViewer","toggleCopyButtonState","loadViewer","viewer","_lib_utils_common_utils__WEBPACK_IMPORTED_MODULE_2__","_flash__WEBPACK_IMPORTED_MODULE_1__","auxiliaryViewer","dataset","richType","initViewer","promise","default","all","viewerParam","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_3__","get","innerHTML","validSizes","components_iconvue_type_script_lang_js","props","type","String","required","size","Number","validator","value","includes","cssClasses","width","height","y","x","computed","spriteHref","sprite_icons","iconTestClass","iconSizeClass","component","componentNormalizer","_vm","_h","$createElement","_c","_self","class","attrs","_b","xlink:href","CommitPipelineService","components_commit_pipeline_status_componentvue_type_script_lang_js","directives","components","ciIcon","ci_icon","loadingIcon","loading_icon","ciStatus","isLoading","statusTitle","commitText","mounted","service","commit_pipeline_service","initPolling","methods","res","pipelines","details","icon","group","poll","visibilityjs_default","fetchPipelineCommitData","restart","fetchData","destroy","label","details_path","rawName","title","aria-label","data-container","TreeView","initKeyNav","$clickedEl","path","is","metaKey","which","open","_lib_utils_url_utility__WEBPACK_IMPORTED_MODULE_1__","li","liSelected","keydown","next","eq","prev","BYTES_IN_KIB","HIDDEN_CLASS","_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_5__","_tree__WEBPACK_IMPORTED_MODULE_4__","_blob_viewer__WEBPACK_IMPORTED_MODULE_6__","_new_commit_form__WEBPACK_IMPORTED_MODULE_7__","waitForImages","_lib_utils_common_utils__WEBPACK_IMPORTED_MODULE_8__","logsPath","_blob_edit_blob_bundle__WEBPACK_IMPORTED_MODULE_2__","commitPipelineStatusEl","statusLink","vue__WEBPACK_IMPORTED_MODULE_1__","commitPipelineStatus","_projects_tree_components_commit_pipeline_status_component_vue__WEBPACK_IMPORTED_MODULE_3__","render","createElement","NO_CONTENT","MULTIPLE_CHOICES","BAD_REQUEST","NOT_FOUND","components_ci_iconvue_type_script_lang_js","Icon","borderless","Boolean","cssClass"],"mappings":"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","file":"pages.projects.tree.show.a901bba3.chunk.js","sourcesContent":["import httpStatusCodes 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 = options.notificationCallback ||\n 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 && response.status === httpStatusCodes.OK && this.canPoll) {\n this.timeoutID = setTimeout(() => {\n this.makeRequest();\n }, pollInterval);\n }\n this.options.successCallback(response);\n }\n\n makeRequest() {\n const { resource, method, data, errorCallback, notificationCallback } = this.options;\n\n // It's called everytime a new request is made. Useful to update the status.\n notificationCallback(true);\n\n return resource[method](data)\n .then((response) => {\n this.checkConditions(response);\n notificationCallback(false);\n })\n .catch((error) => {\n notificationCallback(false);\n if (error.status === httpStatusCodes.ABORTED) {\n return;\n }\n errorCallback(error);\n });\n }\n\n /**\n * Stops the polling recursive chain\n * and guarantees if the timeout is already running it won't make another request by\n * cancelling the previously established timeout.\n */\n stop() {\n this.canPoll = false;\n clearTimeout(this.timeoutID);\n }\n\n /**\n * Restarts polling after it has been stoped\n */\n restart(options) {\n // update data\n if (options && options.data) {\n this.options.data = options.data;\n }\n\n this.canPoll = true;\n this.makeRequest();\n }\n}\n","import $ from 'jquery';\n\nexport default {\n bind(el) {\n $(el).tooltip({\n trigger: 'hover',\n });\n },\n\n componentUpdated(el) {\n $(el).tooltip('_fixTitle');\n },\n\n unbind(el) {\n $(el).tooltip('dispose');\n },\n};\n","/* 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(\n '.js-create-merge-request-container',\n );\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",";(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",";(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","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\n .addClass('fa-spinner fa-spin')\n .removeClass('fa-chevron-down');\n }\n\n renderLoaded() {\n this.$loadingIcon\n .addClass('fa-chevron-down')\n .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}\n","import Api from '../../api';\n\nimport 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 endpoint: Api.gitlabCiYml,\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 Api from '../../api';\n\nimport 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 endpoint: Api.dockerfileYml,\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 Api from '../../api';\n\nimport 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 endpoint: Api.gitignoreText,\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 Api from '../../api';\n\nimport 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 endpoint: Api.licenseText,\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","/* eslint-disable class-methods-use-this */\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 }) {\n this.editor = editor;\n this.currentAction = currentAction;\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\n .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 already there\n this.destroyUndoMenu();\n this.fetchFileTemplate(selector.config.endpoint, 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(apiCall, query, data) {\n return new Promise((resolve) => {\n const resolveFile = file => resolve(file);\n\n if (!data) {\n apiCall(query, resolveFile);\n } else {\n apiCall(query, data, resolveFile);\n }\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';\n\nexport default class EditBlob {\n constructor(assetsPath, aceMode, currentAction) {\n this.configureAceEditor(aceMode, assetsPath);\n this.initModePanesAndLinks();\n this.initSoftWrap();\n this.initFileSelectors(currentAction);\n }\n\n configureAceEditor(aceMode, assetsPath) {\n ace.config.set('modePath', `${assetsPath}/ace`);\n ace.config.loadModule('ace/ext/searchbox');\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 (aceMode) {\n this.editor.getSession().setMode(`ace/mode/${aceMode}`);\n }\n }\n\n initFileSelectors(currentAction) {\n this.fileTemplateMediator = new TemplateSelectorMediator({\n currentAction,\n editor: this.editor,\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.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').html('').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 = $('
').html(errorMessage).text();\n $('.dropzone-alerts').html(`Error uploading file: \"${stripped}\"`).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 blobLanguage = editBlobForm.data('blobLanguage');\n const currentAction = $('.js-file-title').data('currentAction');\n\n new EditBlob(`${urlRoot}${assetsPath}`, blobLanguage, currentAction);\n new NewCommitForm(editBlobForm);\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 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 => 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)\n .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', '复制源码到剪贴板');\n this.copySourceBtn.classList.remove('disabled');\n } else if (this.activeViewer === this.simpleViewer) {\n this.copySourceBtn.setAttribute('title', '等待源码加载以将其复制到剪贴板');\n this.copySourceBtn.classList.add('disabled');\n } else {\n this.copySourceBtn.setAttribute('title', '切换到源码以将其复制到剪贴板');\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)\n .then(({ data }) => {\n viewer.innerHTML = data.html;\n viewer.setAttribute('data-loaded', 'true');\n\n return viewer;\n });\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:[_vm.iconSizeClass, _vm.iconTestClass, _vm.cssClasses],attrs:{\"width\":_vm.width,\"height\":_vm.height,\"x\":_vm.x,\"y\":_vm.y}},[_c('use',_vm._b({},'use',{ 'xlink:href':_vm.spriteHref },false))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./icon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./icon.vue?vue&type=template&id=4bd8f44c\"\nimport script from \"./icon.vue?vue&type=script&lang=js\"\nexport * from \"./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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('loading-icon',{attrs:{\"label\":\"Loading pipeline status\",\"size\":\"3\"}}):_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,\"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--0!../../../../../../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--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commit_pipeline_status_component.vue?vue&type=script&lang=js\"","\n\n