{"version":3,"sources":["webpack:///./ajax_loading_spinner.js","webpack:///./branches/branches_delete_modal.js","webpack:///./pages/projects/branches/index/index.js"],"names":["$elements","jquery_default","on","AjaxLoadingSpinner","ajaxBeforeSend","ajaxComplete","e","target","setAttribute","iconElement","querySelector","originalIcon","className","match","dataset","icon","toggleLoadingIcon","off","removeAttribute","classList","toggle","MODAL_SELECTOR","branches_delete_modal","DeleteModal","branches_delete_modal_classCallCheck","this","$modal","$toggleBtns","$","$branchName","$confirmInput","$deleteBtn","$notMerged","bindEvents","setModalData","bind","setDeleteDisabled","setDisableDeleteButton","branchData","currentTarget","branchName","deletePath","isMerged","updateModal","attr","value","is","preventDefault","stopPropagation","text","val","toggleClass","document","addEventListener","ajax_loading_spinner","init"],"mappings":"6kBAII,IAAMA,EAAYC,IAAE,4BAEpBD,EAAUE,GAAG,kBAAmBC,EAAmBC,gBACnDJ,EAAUE,GAAG,gBAAiBC,EAAmBE,qDAG7BC,GACpBA,EAAEC,OAAOC,aAAa,WAAY,IAClC,IAAMC,EAAcH,EAAEC,OAAOG,cAAc,KAErCC,EAAeF,EAAYG,UAAUC,MAAM,kBAAkB,GACnEJ,EAAYK,QAAQC,KAAOJ,EAC3BR,EAAmBa,kBAAkBP,GACrCR,IAAEK,EAAEC,QAAQU,IAAI,kBAAmBd,EAAmBC,qDAGpCE,GAClBA,EAAEC,OAAOW,gBAAgB,YACzB,IAAMT,EAAcH,EAAEC,OAAOG,cAAc,KAC3CP,EAAmBa,kBAAkBP,GACrCR,IAAEK,EAAEC,QAAQU,IAAI,gBAAiBd,EAAmBE,wDAG7BI,GAAa,IAC5BU,EAAcV,EAAdU,UACRA,EAAUC,OAAOX,EAAYK,QAAQC,MACrCI,EAAUC,OAAO,cACjBD,EAAUC,OAAO,yQC7BrB,IAAMC,EAAiB,uBAkDvBC,aA/CE,SAAAC,iGAAcC,CAAAC,KAAAF,GACZE,KAAKC,OAASzB,IAAEoB,GAChBI,KAAKE,YAAc1B,IAAA2B,iBAAmBP,EAAnB,MACnBI,KAAKI,YAAc5B,IAAE,kBAAmBwB,KAAKC,QAC7CD,KAAKK,cAAgB7B,IAAE,0BAA2BwB,KAAKC,QACvDD,KAAKM,WAAa9B,IAAE,oBAAqBwB,KAAKC,QAC9CD,KAAKO,WAAa/B,IAAE,iBAAkBwB,KAAKC,QAC3CD,KAAKQ,4DAILR,KAAKE,YAAYzB,GAAG,QAASuB,KAAKS,aAAaC,KAAKV,OACpDA,KAAKK,cAAc5B,GAAG,QAASuB,KAAKW,kBAAkBD,KAAKV,OAC3DA,KAAKM,WAAW7B,GAAG,QAASuB,KAAKY,uBAAuBF,KAAKV,4CAGlDnB,GACX,IAAMgC,EAAahC,EAAEiC,cAAczB,QACnCW,KAAKe,WAAaF,EAAWE,YAAc,GAC3Cf,KAAKgB,WAAaH,EAAWG,YAAc,GAC3ChB,KAAKiB,WAAaJ,EAAWI,SAC7BjB,KAAKkB,wDAGWrC,GAChBmB,KAAKM,WAAWa,KAAK,WAAYtC,EAAEiC,cAAcM,QAAUpB,KAAKe,2DAG3ClC,GACrB,OAAImB,KAAKM,WAAWe,GAAG,gBACrBxC,EAAEyC,iBACFzC,EAAE0C,mBACK,yCAOTvB,KAAKI,YAAYoB,KAAKxB,KAAKe,YAC3Bf,KAAKK,cAAcoB,IAAI,IACvBzB,KAAKM,WAAWa,KAAK,OAAQnB,KAAKgB,YAClChB,KAAKM,WAAWa,KAAK,YAAY,GACjCnB,KAAKO,WAAWmB,YAAY,SAAU1B,KAAKiB,mBC7C/CU,SAASC,iBAAiB,mBAAoB,WAC5CC,EAAmBC,OACnB,IAAIjC","file":"pages.projects.branches.index.54150ad1.chunk.js","sourcesContent":["import $ from 'jquery';\n\nexport default class AjaxLoadingSpinner {\n static init() {\n const $elements = $('.js-ajax-loading-spinner');\n\n $elements.on('ajax:beforeSend', AjaxLoadingSpinner.ajaxBeforeSend);\n $elements.on('ajax:complete', AjaxLoadingSpinner.ajaxComplete);\n }\n\n static ajaxBeforeSend(e) {\n e.target.setAttribute('disabled', '');\n const iconElement = e.target.querySelector('i');\n // get first fa- icon\n const originalIcon = iconElement.className.match(/(fa-)([^\\s]+)/g)[0];\n iconElement.dataset.icon = originalIcon;\n AjaxLoadingSpinner.toggleLoadingIcon(iconElement);\n $(e.target).off('ajax:beforeSend', AjaxLoadingSpinner.ajaxBeforeSend);\n }\n\n static ajaxComplete(e) {\n e.target.removeAttribute('disabled');\n const iconElement = e.target.querySelector('i');\n AjaxLoadingSpinner.toggleLoadingIcon(iconElement);\n $(e.target).off('ajax:complete', AjaxLoadingSpinner.ajaxComplete);\n }\n\n static toggleLoadingIcon(iconElement) {\n const { classList } = iconElement;\n classList.toggle(iconElement.dataset.icon);\n classList.toggle('fa-spinner');\n classList.toggle('fa-spin');\n }\n}\n","import $ from 'jquery';\n\nconst MODAL_SELECTOR = '#modal-delete-branch';\n\nclass DeleteModal {\n constructor() {\n this.$modal = $(MODAL_SELECTOR);\n this.$toggleBtns = $(`[data-target=\"${MODAL_SELECTOR}\"]`);\n this.$branchName = $('.js-branch-name', this.$modal);\n this.$confirmInput = $('.js-delete-branch-input', this.$modal);\n this.$deleteBtn = $('.js-delete-branch', this.$modal);\n this.$notMerged = $('.js-not-merged', this.$modal);\n this.bindEvents();\n }\n\n bindEvents() {\n this.$toggleBtns.on('click', this.setModalData.bind(this));\n this.$confirmInput.on('input', this.setDeleteDisabled.bind(this));\n this.$deleteBtn.on('click', this.setDisableDeleteButton.bind(this));\n }\n\n setModalData(e) {\n const branchData = e.currentTarget.dataset;\n this.branchName = branchData.branchName || '';\n this.deletePath = branchData.deletePath || '';\n this.isMerged = !!branchData.isMerged;\n this.updateModal();\n }\n\n setDeleteDisabled(e) {\n this.$deleteBtn.attr('disabled', e.currentTarget.value !== this.branchName);\n }\n\n setDisableDeleteButton(e) {\n if (this.$deleteBtn.is('[disabled]')) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n\n return true;\n }\n\n updateModal() {\n this.$branchName.text(this.branchName);\n this.$confirmInput.val('');\n this.$deleteBtn.attr('href', this.deletePath);\n this.$deleteBtn.attr('disabled', true);\n this.$notMerged.toggleClass('hidden', this.isMerged);\n }\n}\n\nexport default DeleteModal;\n","import AjaxLoadingSpinner from '~/ajax_loading_spinner';\nimport DeleteModal from '~/branches/branches_delete_modal';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n AjaxLoadingSpinner.init();\n new DeleteModal(); // eslint-disable-line no-new\n});\n"],"sourceRoot":""}