{"version":3,"file":"chunks/1f469ac3d8b868.js","mappings":"yzDAIA,IAAMA,EAAW,WACXC,EAAU,UA6GhB,QA3GwB,WAGtB,WAAYC,EAA6B,GAAuC,IAArCC,EAAM,EAANA,OAAQC,EAAU,EAAVA,WAAYC,EAAa,EAAbA,e,4FAAa,SAC1EC,KAAKC,SAAWC,OAAOC,UAAUC,UAAUC,MAAM,OAC7CX,EACAC,EAAQ,IAEoD,EAFpD,IAESW,SAASC,iBAAiB,mBAAiB,IAAhE,IAAK,EAAL,qBAAkE,KAAzDC,EAAQ,QACfA,EAASC,iBAAiB,QAAST,KAAKU,gBAAgBC,KAAKX,OAEzDE,OAAOU,SAASC,SAASR,MAAM,gBACjCG,EAASM,KAAOf,GAEhBS,EAASM,KAAOd,KAAKC,SAAWJ,EAASC,EAErCE,KAAKC,WAAaN,EAEhBa,EAASO,UAAUV,MAAMX,IAC3Bc,EAASO,UAAYP,EAASO,UAAUC,QAAQtB,EAAUC,GAC1Da,EAASM,KAAOhB,GACPU,EAASO,UAAUV,MAAMV,IAClCa,EAASO,UAAYP,EAASO,UAAUC,QAAQrB,EAASD,GACzDc,EAASM,KAAOjB,GAEhBW,EAASM,KAAOhB,EAETU,EAASO,UAAUV,MAAMV,KAClCa,EAASM,KAAOhB,GAGtB,CAEA,mCAC8D,EAD9D,IAC0BQ,SAASC,iBAAiB,YAAU,IAA9D,IAAK,EAAL,qBAAgE,KAArDU,EAAW,QACfA,EAAYH,KAAKT,MAAM,SAE1BY,EAAYR,iBAAiB,QAAST,KAAKU,gBAAgBC,KAAKX,MACpE,CAAC,+BACH,C,QAiEC,O,EAjEA,G,EAAA,8BAED,SAAgBkB,GACdA,EAAEC,iBAEF,IAAIC,GAAa,EAEXC,EAAUH,EAAEI,cAAcR,KAC1BS,EAAkBvB,KAAKC,SAEvBuB,EAAQ,IAAIC,EAAAA,QAAM,CACtBC,UAAW,eACXC,oBAAoB,IAGhBC,EAAeJ,EAAMK,cAAcC,IAAI,GAC7CF,EAAaG,UAAYzB,SAAS0B,cAChC,wBACAC,UAEF,IAAMC,EAAcN,EAAaI,cAAc,0BAC/CE,EAAYzB,iBAAiB,SAAS,WAC/BW,IAELI,EAAMW,OACN7B,SAAS0B,cAAc,kBAAkBI,SACzC9B,SACG0B,cAAc,uBACdK,aAAa,QAAS,kBAEzBC,EAAAA,EAAAA,WAAoB,mBAAoB,CACtCC,YAAa,aACbhB,gBAAAA,EAEAiB,SAAUnB,EAAQoB,MAAMpB,EAAQqB,YAAY,KAAO,GACnDrB,QAAAA,EAEAsB,kBAAmBC,EAAAA,EAAAA,UAAkB,qBACrCC,oBAAqBD,EAAAA,EAAAA,UACnB,uBAEFE,mBAAoBF,EAAAA,EAAAA,UAAkB,wBAE1C,IAEA,IAAMG,EAAiBb,EAAYc,aAAa,SAChDpB,EAAaI,cAAc,SAASvB,iBAAiB,SAAS,YACvDW,GAAcA,IAEjBc,EAAYG,aACV,QACAU,EAAe/B,QAAQ,WAAY,KAErCkB,EAAYG,aAAa,OAAQhB,KAEjCa,EAAYG,aAAa,QAAS,GAAF,OAAKU,EAAc,cACnDb,EAAYe,gBAAgB,QAEhC,IAEArB,EACGI,cAAc,2BACdvB,iBAAiB,QAASe,EAAMW,KAAKxB,KAAKa,IAE7CA,EAAM0B,MACR,M,oEAAC,EAxGqB,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 optimizelyBuckets: storage.getCookie(\"optimizelyBuckets\"),\n optimizelyEndUserId: storage.getCookie(\n \"optimizelyEndUserId\"\n ),\n optimizelySegments: storage.getCookie(\"optimizelySegments\")\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","_componentRoot","macURL","windowsURL","enterpriseURL","this","platform","window","navigator","userAgent","match","document","querySelectorAll","linkNode","addEventListener","onDownloadClick","bind","location","pathname","href","innerText","replace","archiveLink","e","preventDefault","EULAAgreed","fileUrl","currentTarget","productPlatform","modal","Modal","modalType","contentClickToHide","modalContent","$modalContent","get","innerHTML","querySelector","outerHTML","downloadBtn","hide","remove","setAttribute","tracking","productName","fileName","slice","lastIndexOf","optimizelyBuckets","storage","optimizelyEndUserId","optimizelySegments","downloadBtnCls","getAttribute","removeAttribute","show"],"sourceRoot":""}