{"version":3,"sources":["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:///./shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:///./new_commit_form.js","webpack:///./pages/projects/index.js","webpack:///./lib/utils/constants.js"],"names":["FileTemplateSelector","mediator","_classCallCheck","this","$dropdown","$wrapper","cfg","config","jquery_default","dropdown","wrapper","$loadingIcon","find","$dropdownToggleText","initDropdown","init","removeClass","addClass","hasClass","text","options","query","e","data","preventDefault","selectTemplateFile","opts","selectedObj","name","reportSelection","FileTemplateTypeSelector","_ref","dropdownData","type_selector_classCallCheck","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","file_template_selector","_this2","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","$el","project","fullname","id","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","show","hideTemplateSelectorMenu","displayMatchedTemplateSelector","listenForFilenameInput","prepFileContentForSubmit","listenForPreviewMode","on","_this3","submit","val","getValue","_this4","hash","target","href","split","isHidden","showTemplateSelectorMenu","forEach","selector","hide","setToggleText","cacheToggleText","selectTemplateType","_this5","renderLoading","destroyUndoMenu","fetchFileTemplate","then","file","showUndoMenu","setEditorContent","setFilename","renderLoaded","catch","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","trigger","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","form","method","blob_file_dropzone_classCallCheck","formDropzone","submitButton","submitButtonLoadingIcon","dropzoneMessage","dropzone","autoProcessQueue","url","clickable","uploadMultiple","paramName","maxFilesize","gon","max_file_size","parallelUploads","maxFiles","addRemoveLinks","previewsContainer","headers","csrf","html","header","response","modal","url_utility","filePath","removeFile","xhr","formData","error","errorMessage","stripped","stopPropagation","getQueuedFiles","length","alert","processQueue","editBlobForm","uploadBlobForm","deleteBlobForm","urlRoot","blobLanguage","edit_blob","new_commit_form","blob_file_dropzone","window","gl","utils","disableButtonIfEmptyField","ShortcutsNavigation","mousetrap__WEBPACK_IMPORTED_MODULE_0___default","bind","_shortcuts_dashboard_navigation__WEBPACK_IMPORTED_MODULE_1__","enabledHelp","push","_shortcuts__WEBPACK_IMPORTED_MODULE_2__","ProjectSelectComboButton","select","projectSelectInput","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","siblings","openDropdown","getProjectFromLocalStorage","selectProject","accessor","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","event","currentTarget","select2","selectedProjectData","JSON","parse","projectMeta","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","stringify","setItem","slice","projectSelect","each","i","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","minimumInputLength","finalCallback","projectsCallback","projects","results","callback","groupsCallback","groups","concat","term","groupProjects","order_by","with_issues_enabled","with_merge_requests_enabled","membership","web_url","name_with_namespace","dropdownCssClass","project_select_combo_button","__webpack_require__","d","__webpack_exports__","Project","$cloneOptions","jquery__WEBPACK_IMPORTED_MODULE_0___default","$projectCloneField","$cloneBtnText","selectedCloneOption","trim","$","$this","activeText","not","initRefSwitcher","parents","js_cookie__WEBPACK_IMPORTED_MODULE_1___default","remove","projectSelectDropdown","_project_select__WEBPACK_IMPORTED_MODULE_6__","changeProject","location","refListItem","document","createElement","refLink","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_4__","get","params","ref","_flash__WEBPACK_IMPORTED_MODULE_5__","_locale__WEBPACK_IMPORTED_MODULE_2__","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","className","textContent","link","dataset","appendChild","obj","$form","closest","$visit","shouldVisit","action","divider","indexOf","_lib_utils_url_utility__WEBPACK_IMPORTED_MODULE_3__","visitUrl","serialize","NewCommitForm","renderDestination","branchName","originalBranch","createMergeRequest","createMergeRequestContainer","keyup","different","wasDifferent","prop","addEventListener","_project__WEBPACK_IMPORTED_MODULE_0__","_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_1__","BYTES_IN_KIB","HIDDEN_CLASS"],"mappings":"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","file":"commons~pages.projects.blame.show~pages.projects.blob.edit~pages.projects.blob.new~pages.projects.bl~046fef08.049d4789.chunk.js","sourcesContent":["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 func-names, space-before-function-paren, prefer-arrow-callback, no-var, quotes, vars-on-top, no-unused-vars, no-new, max-len */\n/* global EditBlob */\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 Mousetrap from 'mousetrap';\nimport findAndFollowLink from './shortcuts_dashboard_navigation';\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('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.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 = ['group', this.groupId, this.formattedText.localStorageItemType, 'recent-project'].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n $(event.currentTarget).siblings('.project-item-select').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.split('_').join('-').slice(0, -1)}`;\n const presetTextSuffix = this.resourceType.split('_').join(' ').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\n","/* eslint-disable func-names, space-before-function-paren, wrap-iife, prefer-arrow-callback, no-var, comma-dangle, object-shorthand, one-var, one-var-declaration-per-line, no-else-return, quotes, max-len */\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\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(_this.groupId, query.term, projectsCallback);\n } else {\n return Api.projects(query.term, {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n }, projectsCallback);\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 dropdownCssClass: \"ajax-project-dropdown\"\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n}\n","/* eslint-disable func-names, space-before-function-paren, no-var, consistent-return, no-new, prefer-arrow-callback, no-return-assign, one-var, one-var-declaration-per-line, object-shorthand, no-else-return, newline-per-chained-call, no-shadow, vars-on-top, prefer-template, max-len */\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 $cloneBtnText = $('a.clone-dropdown-btn span');\n\n const selectedCloneOption = $cloneBtnText.text().trim();\n if (selectedCloneOption.length > 0) {\n $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active');\n }\n\n $('a', $cloneOptions).on('click', (e) => {\n const $this = $(e.currentTarget);\n const url = $this.attr('href');\n const activeText = $this.find('.dropdown-menu-inner-title').text();\n\n e.preventDefault();\n\n $('.is-active', $cloneOptions).not($this).removeClass('is-active');\n $this.toggleClass('is-active');\n $projectCloneField.val(url);\n $cloneBtnText.text(activeText);\n\n return $('.clone').text(url);\n });\n // Ref switcher\n Project.initRefSwitcher();\n $('.project-refs-select').on('change', function() {\n return $(this).parents('form').submit();\n });\n $('.hide-no-ssh-message').on('click', function(e) {\n Cookies.set('hide_no_ssh_message', 'false');\n $(this).parents('.no-ssh-key-message').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).parents('.no-password-message').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.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","/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, no-return-assign, max-len */\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","import Project from './project';\nimport ShortcutsNavigation from '../../shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Project(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n});\n","export const BYTES_IN_KIB = 1024;\nexport const HIDDEN_CLASS = 'hidden';\n"],"sourceRoot":""}