{"version":3,"file":"chunks/eb20b5a4c8b42a.js","mappings":"8yDAIA,IAAMA,EAAW,WACXC,EAAU,UAuGhB,QArGwB,WAGtB,SAAAC,EAAYC,EAA2BC,GAAyC,IAArCC,EAAMD,EAANC,OAAQC,EAAUF,EAAVE,WAAYC,EAAaH,EAAbG,e,4FAAaC,CAAA,KAAAN,GAC1EO,KAAKC,SAAWC,OAAOC,UAAUC,UAAUC,MAAM,OAC7Cd,EACAC,EAAQ,IAEoDc,EAFpDC,EAAAC,EAESC,SAASC,iBAAiB,mBAAiB,IAAhE,IAAAH,EAAAI,MAAAL,EAAAC,EAAAK,KAAAC,MAAkE,KAAzDC,EAAQR,EAAAS,MACfD,EAASE,iBAAiB,QAAShB,KAAKiB,gBAAgBC,KAAKlB,OAEzDE,OAAOiB,SAASC,SAASf,MAAM,gBACjCS,EAASO,KAAOvB,GAEhBgB,EAASO,KAAOrB,KAAKC,SAAWL,EAASC,EAErCG,KAAKC,WAAaT,EAEhBsB,EAASQ,UAAUjB,MAAMd,IAC3BuB,EAASQ,UAAYR,EAASQ,UAAUC,QAAQhC,EAAUC,GAC1DsB,EAASO,KAAOxB,GACPiB,EAASQ,UAAUjB,MAAMb,IAClCsB,EAASQ,UAAYR,EAASQ,UAAUC,QAAQ/B,EAASD,GACzDuB,EAASO,KAAOzB,GAEhBkB,EAASO,KAAOxB,EAETiB,EAASQ,UAAUjB,MAAMb,KAClCsB,EAASO,KAAOxB,GAGtB,CAEA,OAAA2B,GAAAjB,EAAAkB,EAAAD,EAAA,SAAAjB,EAAAmB,GAAA,KAC8DC,EAD9DC,EAAApB,EAC0BC,SAASC,iBAAiB,YAAU,IAA9D,IAAAkB,EAAAjB,MAAAgB,EAAAC,EAAAhB,KAAAC,MAAgE,KAArDgB,EAAWF,EAAAZ,MACfc,EAAYR,KAAKhB,MAAM,SAE1BwB,EAAYb,iBAAiB,QAAShB,KAAKiB,gBAAgBC,KAAKlB,MACpE,CAAC,OAAAwB,GAAAI,EAAAH,EAAAD,EAAA,SAAAI,EAAAF,GAAA,CACH,C,QA2DC,O,EA3DAjC,G,EAAA,EAAAqC,IAAA,kBAAAf,MAED,SAAgBU,GACdA,EAAEM,iBAEF,IAAIC,GAAa,EAEXC,EAAUR,EAAES,cAAcb,KAC1Bc,EAAkBnC,KAAKC,SAEvBmC,EAAQ,IAAIC,EAAAA,QAAM,CACtBC,UAAW,eACXC,oBAAoB,IAGhBC,EAAeJ,EAAMK,cAAcC,IAAI,GAC7CF,EAAaG,UAAYlC,SAASmC,cAChC,wBACAC,UAEF,IAAMC,EAAcN,EAAaI,cAAc,0BAC/CE,EAAY9B,iBAAiB,SAAS,WAC/BgB,IAELI,EAAMW,OACNtC,SAASmC,cAAc,kBAAkBI,SACzCvC,SACGmC,cAAc,uBACdK,aAAa,QAAS,kBAEzBC,EAAAA,EAAAA,WAAoB,mBAAoB,CACtCC,YAAa,aACbhB,gBAAAA,EAEAiB,SAAUnB,EAAQoB,MAAMpB,EAAQqB,YAAY,KAAO,GACnDrB,QAAAA,IAEJ,IAEA,IAAMsB,EAAiBT,EAAYU,aAAa,SAChDhB,EAAaI,cAAc,SAAS5B,iBAAiB,SAAS,YACvDgB,GAAcA,IAEjBc,EAAYG,aACV,QACAM,EAAehC,QAAQ,WAAY,KAErCuB,EAAYG,aAAa,OAAQhB,KAEjCa,EAAYG,aAAa,QAAS,GAAFQ,OAAKF,EAAc,cACnDT,EAAYY,gBAAgB,QAEhC,IAEAlB,EACGI,cAAc,2BACd5B,iBAAiB,QAASoB,EAAMW,KAAK7B,KAAKkB,IAE7CA,EAAMuB,MACR,M,oEAAClE,CAAA,CAlGqB,E","sources":["webpack:///./resources/js/components/specific/sourcetree-download.ts"],"sourcesContent":["import storage from \"../../utils/storage\";\nimport tracking from '../../utils/tracking';\nimport Modal from '../../components/generic/modal';\n\nconst MAC_OS_X = \"Mac OS X\";\nconst WINDOWS = \"Windows\";\n\nclass SourcetreeDownload {\n platform: string;\n\n constructor(_componentRoot: HTMLElement, { macURL, windowsURL, enterpriseURL }) {\n this.platform = window.navigator.userAgent.match(/Mac/)\n ? MAC_OS_X\n : WINDOWS;\n\n for (let linkNode of document.querySelectorAll(\".download-link\")) {\n linkNode.addEventListener(\"click\", this.onDownloadClick.bind(this));\n\n if (window.location.pathname.match(/\\/enterprise/)) {\n linkNode.href = enterpriseURL;\n } else {\n linkNode.href = this.platform ? macURL : windowsURL;\n\n if (this.platform === WINDOWS) {\n // switch in-page button texts and links to Windows first\n if (linkNode.innerText.match(MAC_OS_X)) {\n linkNode.innerText = linkNode.innerText.replace(MAC_OS_X, WINDOWS);\n linkNode.href = windowsURL;\n } else if (linkNode.innerText.match(WINDOWS)) {\n linkNode.innerText = linkNode.innerText.replace(WINDOWS, MAC_OS_X);\n linkNode.href = macURL;\n } else {\n linkNode.href = windowsURL;\n }\n } else if (linkNode.innerText.match(WINDOWS)) {\n linkNode.href = windowsURL; // need to set the Windows download URL even on Macs\n }\n }\n }\n\n // for the download archives page, add modal opening listener for download links\n for (const archiveLink of document.querySelectorAll(\"tbody a\")) {\n if (!archiveLink.href.match(\"html\"))\n // avoid release notes links\n archiveLink.addEventListener(\"click\", this.onDownloadClick.bind(this));\n }\n }\n\n onDownloadClick(e: MouseEvent) {\n e.preventDefault();\n\n let EULAAgreed = false;\n\n const fileUrl = e.currentTarget.href;\n const productPlatform = this.platform;\n\n const modal = new Modal({\n modalType: \"download wpl\",\n contentClickToHide: false\n });\n\n const modalContent = modal.$modalContent.get(0);\n modalContent.innerHTML = document.querySelector(\n \"#download-view-modal\"\n ).outerHTML;\n\n const downloadBtn = modalContent.querySelector(\"#eula-downloads-button\");\n downloadBtn.addEventListener(\"click\", () => {\n if (!EULAAgreed) return; // need to agree to EULA before download\n\n modal.hide();\n document.querySelector(\"#download-area\").remove();\n document\n .querySelector(\"#post-download-area\")\n .setAttribute(\"style\", \"display: block\"); // show post download content\n\n tracking.trackEvent(\"Started Download\", {\n productName: \"SourceTree\",\n productPlatform,\n\n fileName: fileUrl.slice(fileUrl.lastIndexOf(\"/\") + 1),\n fileUrl\n });\n });\n\n const downloadBtnCls = downloadBtn.getAttribute(\"class\");\n modalContent.querySelector(\"input\").addEventListener(\"click\", () => {\n if ((EULAAgreed = !EULAAgreed)) {\n // enable download button on EULA agreement\n downloadBtn.setAttribute(\n \"class\",\n downloadBtnCls.replace(/disabled/, \"\")\n );\n downloadBtn.setAttribute(\"href\", fileUrl);\n } else {\n downloadBtn.setAttribute(\"class\", `${downloadBtnCls} disabled`);\n downloadBtn.removeAttribute(\"href\");\n }\n });\n\n modalContent\n .querySelector(\".downloads-view__cancel\")\n .addEventListener(\"click\", modal.hide.bind(modal));\n\n modal.show();\n }\n}\n\nexport default SourcetreeDownload;\n"],"names":["MAC_OS_X","WINDOWS","SourcetreeDownload","_componentRoot","_ref","macURL","windowsURL","enterpriseURL","_classCallCheck","this","platform","window","navigator","userAgent","match","_step","_iterator","_createForOfIteratorHelper","document","querySelectorAll","s","n","done","linkNode","value","addEventListener","onDownloadClick","bind","location","pathname","href","innerText","replace","err","e","f","_step2","_iterator2","archiveLink","key","preventDefault","EULAAgreed","fileUrl","currentTarget","productPlatform","modal","Modal","modalType","contentClickToHide","modalContent","$modalContent","get","innerHTML","querySelector","outerHTML","downloadBtn","hide","remove","setAttribute","tracking","productName","fileName","slice","lastIndexOf","downloadBtnCls","getAttribute","concat","removeAttribute","show"],"sourceRoot":""}