{"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":""}