{"version":3,"file":"chunks/8ef19f03ef9194.js","mappings":"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","sources":["webpack:///./resources/js/common/download-helper.ts","webpack:///./resources/js/components/shared/updateListView.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport imkt from '../imkt';\nimport storage from \"../utils/storage\";\nimport tracking from '../utils/tracking';\nimport Modal from '../components/generic/modal';\n\nexport default {\n data: {},\n // returns a file extension of a file name\n getFileExtension: function (fileName: string) {\n var fileExtension;\n try {\n fileExtension = fileName.split(\".\").pop();\n } catch (error) {\n fileExtension = \"\";\n }\n switch (fileExtension) {\n case \"gz\":\n return \"TAR.GZ\";\n default:\n return fileExtension.toUpperCase();\n }\n },\n\n // returns a file name (everthing after the last / of the url);\n getFileName: function (filePath: string) {\n var fileName;\n try {\n fileName = filePath.substr(filePath.lastIndexOf(\"/\") + 1);\n } catch (error) {\n fileName = \"Unknown\";\n }\n return fileName;\n },\n\n // returns the OS you're on\n getOS: function () {\n if (navigator.appVersion.indexOf(\"Mac\") !== -1) {\n return \"Mac\";\n } else if (\n navigator.appVersion.indexOf(\"X11\") !== -1 ||\n navigator.appVersion.indexOf(\"Linux\") !== -1\n ) {\n return \"Unix\";\n } else {\n return \"Windows\";\n }\n },\n\n // creates a select2 dropdown on the selector you pass in\n select2: function (selector: JQuery) {\n if (selector.length) {\n $.getScript(\n imkt.constants.libPath + \"select2.js\" + imkt.constants.cdnVersionQuery\n ).done(function () {\n selector.select2({ minimumResultsForSearch: -1 });\n });\n }\n },\n\n // gets underscore.js and then calls the funciton you pass in\n underscore: function (callback) {\n var underscoreRequest = $.Deferred();\n // underscore is a dependency, so load that first\n if (typeof _ === \"undefined\") {\n underscoreRequest = $.getScript(\n imkt.constants.libPath +\n \"underscore.js\" +\n imkt.constants.cdnVersionQuery\n );\n } else {\n // underscore already exists\n underscoreRequest.resolve();\n }\n $.when(underscoreRequest).then(callback);\n },\n\n // Organizes data from JSONP in OS and calls cloneData() to integrate structured data\n retrieveData: function (\n data,\n callback,\n context,\n type,\n isEnterprise,\n customArray,\n ignoreLabeling\n ) {\n var self = this;\n type = isEnterprise ? \"enterprise\" : type;\n var dataVariable = customArray ? customArray : \"data\";\n var defaultData = context.params.downloadInfo.Default || [];\n var macData = context.params.downloadInfo.Mac || [];\n var linuxData = context.params.downloadInfo.Unix || [];\n var windowsData = context.params.downloadInfo.Windows || [];\n context[dataVariable] = {\n Default: [],\n Mac: [],\n Unix: [],\n Windows: [],\n };\n data.forEach(function (download) {\n if (download.platform.indexOf(\"Mac\") > -1) {\n self.cloneData(\n \"Mac\",\n macData,\n download,\n context,\n type,\n isEnterprise,\n customArray,\n ignoreLabeling\n );\n }\n if (download.platform.indexOf(\"Unix\") > -1) {\n self.cloneData(\n \"Unix\",\n linuxData,\n download,\n context,\n type,\n isEnterprise,\n customArray,\n ignoreLabeling\n );\n }\n if (download.platform.indexOf(\"Windows\") > -1) {\n self.cloneData(\n \"Windows\",\n windowsData,\n download,\n context,\n type,\n isEnterprise,\n customArray,\n ignoreLabeling\n );\n }\n self.cloneData(\n \"Default\",\n defaultData,\n download,\n context,\n type,\n isEnterprise,\n customArray,\n ignoreLabeling\n );\n });\n callback(context, isEnterprise);\n },\n\n // Clones original objects from JSONP and mashes them up with data from structured data in Magnolia\n cloneData: function (\n os,\n osData,\n download,\n context,\n type,\n isEnterprise,\n customArray,\n ignoreLabeling\n ) {\n var self = this;\n var dataVariable = customArray ? customArray : \"data\";\n if (osData.length > 0) {\n osData.forEach(function (object) {\n var shouldPopulate =\n download.description.indexOf(object.descriptionKey) > -1 ||\n ignoreLabeling;\n if (shouldPopulate) {\n var clonedObject = Object.assign({}, download);\n var fileExtension = self.getFileExtension(clonedObject.zipUrl);\n var fileName = self.getFileName(clonedObject.zipUrl);\n if (\n object.fileExtension !== \"none\" &&\n fileExtension !== object.fileExtension\n ) {\n return true;\n }\n switch (type) {\n case \"update\":\n clonedObject.show = object.includeUpdate;\n break;\n case \"enterprise\":\n clonedObject.show = object.includeEnterprise;\n break;\n default:\n clonedObject.show = object.includeDownload;\n break;\n }\n clonedObject.displayName = object.descriptionValue;\n clonedObject.selected = object.selected;\n clonedObject.os = object.os;\n clonedObject.fileExtension = fileExtension;\n clonedObject.fileName = ignoreLabeling\n ? object.description\n : fileName;\n context[dataVariable][os].push(clonedObject);\n }\n });\n }\n },\n\n // build tracking data and return it\n buildTrackingData: function (selector) {\n var data = {\n productName: selector.data(\"product-name\"),\n productPlatform: selector.data(\"product-platform\"),\n productVersion: selector.data(\"product-version\"),\n productReleaseDate: selector.data(\"product-release-date\"),\n fileName: selector.data(\"file-name\"),\n fileDescription: selector.data(\"file-description\"),\n fileUrl: selector.data(\"file-url\"),\n releaseNotes: selector.data(\"release-notes\"),\n version: selector.data(\"version\"),\n };\n return data;\n },\n\n // calls changeDownloadLink when selectElement is changed\n // parameter values are selected DOM elements\n changeDownload: function (\n selectElement,\n downloadLink,\n currentVersion,\n releaseNotes\n ) {\n var self = this;\n\n selectElement.change(function () {\n var $this = $(this);\n var selectedProduct = $this.find(\":selected\");\n self.data = self.buildTrackingData(selectedProduct);\n\n // update DOM\n if (downloadLink && downloadLink.data) {\n downloadLink.data(\"href\", self.data.fileUrl);\n }\n if (releaseNotes && releaseNotes.attr) {\n releaseNotes.attr(\"href\", self.data.releaseNotes);\n }\n if (currentVersion && currentVersion.text) {\n currentVersion.text(self.data.version);\n }\n });\n },\n\n // This pops up our downloads EULA in a modal and adds href to button if they agree. Also, switches between the download/post-download areas and updates post-download buttons with the href={{installer}} to the download file url. Lastly, it sends a tracking event to segment.\n download: function ($domRoot, $downloadModalButton, doNotShowPostContent?: boolean) {\n let self = this;\n let href;\n let downloadModal = $(\"#download-view-modal\", $domRoot);\n let downloadArea = $(\"#download-area\");\n let postDownloadArea = $(\"#post-download-area\");\n let installerButton = postDownloadArea.find(\".button\");\n\n $downloadModalButton.on(\"click\", function (e) {\n e.preventDefault();\n\n let clickedModalButton = $(this);\n href = clickedModalButton.data(\"href\");\n let modalContainer = new Modal({\n modalType: \"download wpl\",\n contentClickToHide: false,\n });\n modalContainer.$modal.find(\".modal-content\").html(downloadModal);\n let downloadButton = modalContainer.$modal.find(\"#eula-downloads-button\");\n let checkbox = modalContainer.$modal.find(\"#download-eula-checkbox\");\n let cancel = modalContainer.$modal.find(\".downloads-view__cancel\");\n\n // EULA Events\n checkbox.off(\"change\");\n checkbox.on(\"change\", function () {\n if ($(this).is(\":checked\")) {\n downloadButton.removeClass(\"disabled\");\n downloadButton.attr(\"href\", href);\n } else {\n downloadButton.addClass(\"disabled\");\n downloadButton.attr(\"href\", \"\");\n }\n });\n checkbox.trigger(\"change\");\n\n cancel.off(\"click\");\n cancel.on(\"click\", function () {\n modalContainer.hide();\n });\n\n downloadButton.off(\"click\");\n downloadButton.on(\"click\", function (e) {\n if (downloadButton.hasClass(\"disabled\")) {\n e.preventDefault();\n } else {\n modalContainer.hide();\n if (clickedModalButton.hasClass(\"download-link--archive\")) {\n self.data = self.buildTrackingData(clickedModalButton);\n }\n\n // Segment tracking call\n tracking.trackEvent(\"Started Download\", self.data);\n\n // Show Post-download section\n if (postDownloadArea.length > 0 && !doNotShowPostContent) {\n $.each(installerButton, function () {\n if ($(this).attr(\"href\") === \"{{installer}}\") {\n $(this).attr(\"href\", href);\n }\n });\n downloadArea.addClass(\"inactive\");\n postDownloadArea.addClass(\"active\");\n }\n }\n });\n modalContainer.show();\n modalContainer.place();\n });\n },\n};\n","import * as $ from \"jquery\";\nimport _ from 'underscore';\nimport tracking from '../../utils/tracking';\nimport downloadHelper from '../../common/download-helper';\n\nexport default class UpdateListView {\n loadTimes: number;\n domRoot: HTMLElement;\n $domRoot: JQuery;\n params: any;\n product: any;\n showEnterpriseColumn: any;\n showChecksum: any;\n \n showMostPopularDownloadFirst: any;\n mostPopularDownload: any;\n unsortedData: any[];\n data: any[];\n enterpriseData: any[];\n agreementData: any[];\n dropdown: any;\n dropdownEnterprise: any;\n dropdownAgreement: any;\n downloadLink: any;\n downloadChosen: any;\n url: any;\n secondURL: any;\n thirdURL: string;\n numOfCalls: number;\n sortedList: any[];\n enterpriseList: any[];\n indexedList: any;\n selectedProduct: { version: string; downloads: any[]; };\n newestDownload: { version: string; downloads: any[]; };\n latestEnterprise: { version: string; downloads: any[]; };\n labels: any;\n baseTracking: { eventComponent: string; };\n\n constructor(domRoot: HTMLElement, params: any) {\n this.loadTimes = 0;\n this.domRoot = domRoot;\n this.$domRoot = $(domRoot);\n window.downloads = function(data) {\n var event = document.createEvent('Event');\n event.receivedDownloadsData = data;\n event.initEvent('jsonpFetched', true, true);\n document.body.dispatchEvent(event);\n };\n this.params = params;\n this.product = params.product;\n this.showEnterpriseColumn = params.showEnterprise ? params.showEnterprise : 'both';\n this.showChecksum = params.showChecksum;\n this.showMostPopularDownloadFirst = params.showMostPopularDownloadFirst;\n this.mostPopularDownload = params.mostPopularDownload;\n this.unsortedData = [];\n this.data = [];\n this.enterpriseData = [];\n this.agreementData = [];\n this.dropdown;\n this.dropdownEnterprise;\n this.dropdownAgreement;\n this.downloadLink;\n this.downloadChosen;\n this.url = params.productCurrentJSON;\n this.secondURL = params.productArchivedJSON;\n this.thirdURL = \"https://my.atlassian.com/download/feeds/archived/jira.json\";\n this.numOfCalls = 0;\n this.sortedList = [];\n this.enterpriseList = [];\n this.indexedList;\n this.selectedProduct = {version: \"0.0.0\", downloads: []};\n this.newestDownload = {version: \"0.0.0\", downloads: []};\n this.latestEnterprise = {version: \"0.0.0\", downloads: []};\n this.labels = params.labels;\n this.baseTracking = {\n eventComponent: \"updateListView\"\n };\n this.init()\n }\n init() {\n this.bindEvents();\n if ($('#second-page-area').length < 1) {\n $(\"#download-area\").after('
');\n $(\"#download-area\").after('
');\n }\n this.params.downloadInfo = this.groupBy(this.params.downloadInfo, 'os');\n\n document.body.addEventListener('jsonpFetched', (e) => {\n this.numOfCalls = this.numOfCalls + 1;\n var oldData = this.unsortedData;\n oldData.push(...e.receivedDownloadsData);\n this.unsortedData = oldData;\n this.addMetaData();\n }, false);\n\n this.getJSON(this.url);\n if (this.showEnterpriseColumn !== \"standardOnly\") {\n this.getJSON(this.secondURL);\n }\n if (this.product == \"jira-combined\") {\n this.getJSON(this.thirdURL);\n }\n }\n\n getJSON(url) {\n var scriptEle = document.createElement('script');\n scriptEle.src = url;\n document.body.appendChild(scriptEle);\n }\n\n showAgreementPage(isEnterprise, shouldShowDropdown) {\n window.scrollTo(0, 0);\n this.getTemplate(\"second-page\", isEnterprise, shouldShowDropdown);\n $(\"#download-area, #second-page-area\").addClass('drawer');\n }\n\n bindEvents() {\n var self = this;\n $('body')\n .on('click', '#eula-downloads-button', function() {\n if (!$(this).hasClass('disabled')) {\n $('#downloads-area, #second-page-area').hide();\n $('#post-download-area').show();\n var osIndex = $(\"#select-product-version\")[0].selectedIndex;\n var selectedOSItem = $(\"#select-product-version\")[0].children[osIndex];\n var selectedOS = selectedOSItem.getAttribute('data-product-platform');\n self.baseTracking.label = \"Download Product Update\";\n self.baseTracking.operatingSystem = selectedOS;\n tracking.trackEvent('Download Product Update', self.baseTracking);\n }\n })\n .on('click', '.expander', function(e) {\n self.baseTracking.productVersion = e.target.getAttribute('data-version');\n self.baseTracking.label = e.target.innerText.trim();\n if ($(this).next().is(':visible')) {\n $(this).text(self.labels.showDetails);\n $(this).next().slideUp();\n tracking.trackEvent('Hide downloads', self.baseTracking);\n } else {\n $(this).text(self.labels.hideDetails);\n $(this).next().slideDown();\n tracking.trackEvent('Show/expand downloads', self.baseTracking);\n }\n })\n .on('click', '#choose-another', function(e) {\n $(\"#download-area, #second-page-area\").removeClass('drawer');\n self.baseTracking.label = e.target.innerText.trim(),\n tracking.trackEvent('Choose Another Product Download', self.baseTracking);\n window.scrollTo(0, 0);\n })\n .on('change', '#select-product-version', function() {\n var downloadURL = $(this).val();\n if ($('#download-eula-checkbox').is(':checked')) {\n $('#checksum-download a').attr('href', downloadURL + '.sha256');\n $('#checksum-download a').removeClass('disabled');\n\n $('#eula-downloads-button').attr('href', downloadURL);\n $('#download-installer-again a').attr('href', downloadURL);\n }\n })\n .on('change', '.choosing-product-version', function() {\n var downloadURL = $(this).val();\n self.downloadChosen = downloadURL;\n if ($('#download-eula-checkbox').is(':checked')) {\n $('#checksum-download a').attr('href', downloadURL + '.sha256');\n $('#checksum-download a').removeClass('disabled');\n\n $('#eula-downloads-button').attr('href', downloadURL);\n $('#download-installer-again a').attr('href', downloadURL);\n }\n })\n .on('change', '#download-eula-checkbox', function() {\n var downloadURL = $('#select-product-version').val()\n if ($(this).is(':checked')) {\n $('#download-installer-again a').attr('href', downloadURL);\n $('#checksum-download a').attr('href', downloadURL + '.sha256');\n $('#checksum-download a').removeClass('disabled');\n\n $('#eula-downloads-button').attr('href', downloadURL);\n $('#eula-downloads-button').removeClass('disabled');\n } else {\n $('#download-installer-again a').attr('href', '#');\n $('#checksum-download a').attr('href', '');\n $('#checksum-download a').addClass('disabled');\n\n $('#eula-downloads-button').attr('href', '')\n $('#eula-downloads-button').addClass('disabled');\n }\n })\n .on('click', '.release-notes', function(e) {\n self.baseTracking.label = e.target.innerText.trim(),\n self.baseTracking.productVersion = e.target.getAttribute('data-version');\n self.baseTracking.productEdition = e.target.getAttribute('data-edition').toLowerCase();\n tracking.trackEvent('Read release notes', self.baseTracking);\n })\n .on('click', '.product-versions', function(e) {\n var $this = $(this);\n var majorVersion = $this.attr('data-major-version');\n var minorVersion = $this.attr('data-minor-version');\n var version = $this.attr('data-version');\n self.selectedProduct = self.indexedList.find(item => majorVersion === item.majorVersion).minorVersion.find(item => minorVersion === item.minorVersion).versions.find(item => version === item.version);\n self.baseTracking.productVersion = self.selectedProduct.version;\n self.baseTracking.productEdition = self.selectedProduct.edition;\n self.baseTracking.label = e.target.innerText.trim();\n var shouldChangeDownloadsToEnterprise = self.showMostPopularDownloadFirst && self.selectedProduct.edition == \"Enterprise\";\n downloadHelper.retrieveData(self.selectedProduct.downloads, self.initialEvents, self, \"update\", shouldChangeDownloadsToEnterprise, \"agreementData\", $(this).hasClass('accordion'));\n self.showAgreementPage(shouldChangeDownloadsToEnterprise, $(this).hasClass('accordion'));\n tracking.trackEvent('Click to Agreement Page for product download', self.baseTracking);\n return false;\n })\n .on('click', \"span.enterprise\", function(e) {\n self.getTemplate(\"enterprise-modal\");\n self.baseTracking.label = e.target.innerText.trim(),\n tracking.trackEvent('Learn more about enterprise - modal', self.baseTracking);\n })\n .on('click', \".close-enterprise-modal\", function() {\n $('#enterprise-container').hide();\n self.baseTracking.label = 'Close modal',\n tracking.trackEvent('Close enterprise modal', self.baseTracking);\n });\n }\n\n htmlDecode(string){\n var e = document.createElement('textarea');\n e.innerHTML = string;\n return e.childNodes.length === 0 ? \"\" : e.childNodes[0].nodeValue.replace(/<\\/p>

/g, '

').replace(/()$/g, '');\n }\n\n // Load the underscore template in the .FTL\n getTemplate(name, isEnterprise, showDropdown) {\n var template;\n switch (name) {\n case \"second-page\":\n template = _.template($(\"#download-second-page\").html());\n $('#second-page-area').html(template({\n labels: this.labels,\n mostPopularDownload: this.mostPopularDownload,\n isAccordion: showDropdown,\n showChecksum: this.showChecksum,\n showMostPopularDownloadFirst: this.showMostPopularDownloadFirst && !showDropdown,\n product: this.selectedProduct,\n downloads: this.agreementData,\n preChosenVersion: this.downloadChosen,\n os: downloadHelper.getOS(),\n productName: this.params.product.replace(\"JIRA\", \"Jira\")\n }));\n break;\n case \"download\":\n var templateFill = isEnterprise && this.showEnterpriseColumn !== \"enterpriseOnly\" ? '#enterprise-standalone-block' : '#download-view';\n var thisProduct = isEnterprise ? this.latestEnterprise : this.newestDownload;\n var downloadData = isEnterprise ? this.enterpriseData : this.data;\n var helpText = this.htmlDecode(isEnterprise ? this.labels.helperTextEnterprise : this.labels.helperTextLatest);\n var comparisonVersionNumber = Number(thisProduct.version.replace(/[^\\d]/g, ''));\n template = _.template($(\"#download-template\").html());\n if (comparisonVersionNumber > 0) {\n $(templateFill).html(template({\n labels: this.labels,\n productKey: this.product,\n product: thisProduct,\n downloads: downloadData,\n mostPopularDownload: this.mostPopularDownload,\n showMostPopularDownloadFirst: this.showMostPopularDownloadFirst,\n isEnterprise: isEnterprise,\n os: downloadHelper.getOS(),\n helperText: helpText,\n productName: this.params.product\n }));\n }\n break;\n case \"accordion\":\n template = _.template($(\"#accordion-template\").html());\n $('#accordion-view').html(template({\n product: this.product,\n labels: this.labels,\n downloads: this.indexedList,\n activeVersion: this.newestDownload,\n latestEnterprise: this.latestEnterprise\n }));\n break;\n case \"enterprise-modal\":\n template = _.template($(\"#enterprise-modal-template\").html());\n $('#enterprise-container').show().html(template({\n labels: this.labels,\n product: this.newestDownload\n }));\n break;\n default:\n return false;\n }\n // once template is loaded, grab the select element and to download button and store them\n this.dropdown = this.$domRoot.find('#select-product-standard-version');\n this.dropdownEnterprise = $('#select-product-enterprise-version');\n this.dropdownAgreement = $('#select-product-version');\n this.downloadLink = this.$domRoot.find('#downloads-button');\n }\n\n // .replace(/[^\\d\\.]/g, '') add metadata like file extension and major and minor version numbers for example \"7\" and \"7.1\" for version \"7.1.8\"\n addMetaData() {\n var versionSplit;\n var self = this;\n if (this.unsortedData && this.unsortedData.length) {\n this.unsortedData.forEach(function(object) {\n if (self.product.indexOf('clover') > -1) {\n object.version = object.version.match(/(\\d*)\\.(\\d*)\\.(\\d*)/) ? object.version.match(/(\\d*)\\.(\\d*)\\.(\\d*)/)[0] : object.version.replace(/[^\\d\\.]/g, '');\n object.sortVersion = object.description.match(/Eclipse|Ant|IDEA/) ? object.description.match(/Eclipse|Ant|IDEA/)[0] : 'All';\n }\n try {\n versionSplit = object.version.split('.');\n object.majorVersion = versionSplit[0];\n object.minorVersion = versionSplit[0] + '.' + versionSplit[1].replace(/\\-(.*?)$/, '');\n object.microVersion = versionSplit[2];\n object.extension = downloadHelper.getFileExtension(object.zipUrl);\n } catch (error) {\n object.majorVersion = object.version;\n object.minorVersion = object.version;\n object.microVersion = object.version;\n object.extension = downloadHelper.getFileExtension(object.zipUrl);\n }\n });\n this.arrangeData();\n }\n }\n\n // Arrange each download version into a set where the downloads are stored as an array under sortedList.downloads\n arrangeData() {\n this.sortedList = [];\n var data = this.arrayFrom(this.groupBy(this.unsortedData, 'version'));\n data.forEach((item) => {\n\n // get the first item to add some data to set (i.e. release date, release notes url, version numbers, etc)\n var firstItem = item[0] ? item[0] : {};\n var newObject = {\n \"product\": this.params.productName,\n \"description\": firstItem.description,\n \"version\": firstItem.version,\n \"edition\": firstItem.edition,\n \"extension\": firstItem.extension,\n \"sortVersion\": firstItem.sortVersion,\n \"majorVersion\": firstItem.majorVersion,\n \"minorVersion\": firstItem.minorVersion,\n \"microVersion\": firstItem.microVersion,\n \"released\": firstItem.released,\n \"releaseNotes\": firstItem.releaseNotes,\n \"downloadLink\": firstItem.zipUrl,\n \"downloads\": item\n };\n var biggerOfCurrentAndEnterprise = this.versionComparer(newObject, this.latestEnterprise);\n this.latestEnterprise = biggerOfCurrentAndEnterprise && biggerOfCurrentAndEnterprise.edition === \"Enterprise\" ? biggerOfCurrentAndEnterprise : this.latestEnterprise;\n\n var biggerOfCurrentAndNewest = this.versionComparer(newObject, this.newestDownload);\n this.selectedProduct = this.newestDownload = biggerOfCurrentAndNewest;\n\n this.sortedList.push(newObject);\n });\n this.indexList();\n\n this.baseTracking.productKey = this.selectedProduct.product;\n downloadHelper.retrieveData(this.newestDownload.downloads, this.initialEvents, this, \"update\", false, \"data\");\n downloadHelper.retrieveData(this.latestEnterprise.downloads, this.initialEvents, this, \"update\", true, \"enterpriseData\");\n }\n\n indexList() {\n let arrangedList = this.sortedList.reduce((acc, download) => {\n let majorVersionIndex = acc.findIndex(item => item.majorVersion === download.majorVersion);\n if (majorVersionIndex < 0) {\n let majorVersionObj = {\n majorVersion: download.majorVersion,\n minorVersion: []\n };\n acc.push(majorVersionObj);\n majorVersionIndex = acc.indexOf(majorVersionObj);\n }\n\n let minorVersionIndex = acc[majorVersionIndex].minorVersion.findIndex(item => item.minorVersion === download.minorVersion);\n if (minorVersionIndex < 0) {\n let minorVersionObj = {\n minorVersion: download.minorVersion,\n versions: []\n };\n acc[majorVersionIndex].minorVersion.push(minorVersionObj);\n minorVersionIndex = acc[majorVersionIndex].minorVersion.indexOf(minorVersionObj);\n }\n\n acc[majorVersionIndex].minorVersion[minorVersionIndex].versions.push(download);\n return acc;\n }, []);\n\n let sortedMajorVersion = arrangedList.sort((a, b) => b.majorVersion - a.majorVersion);\n sortedMajorVersion.forEach((majorVersionObj, index) => {\n sortedMajorVersion[index].minorVersion = majorVersionObj.minorVersion.sort((a, b) => {\n let a_minor = this.versionSplitter(a.minorVersion, 1);\n let b_minor = this.versionSplitter(b.minorVersion, 1);\n return b_minor - a_minor;\n });\n sortedMajorVersion[index].minorVersion.forEach((minorVersionObj, minorIndex) => {\n sortedMajorVersion[index].minorVersion[minorIndex].versions = minorVersionObj.versions.sort((a, b) => {\n let a_version = a.microVersion;\n let b_version = b.microVersion;\n return b_version - a_version;\n });\n });\n });\n this.indexedList = sortedMajorVersion;\n }\n\n hasOnlyNumbers(version) {\n return /^\\d+$/.test(version);\n }\n\n versionSplitter(string, position) {\n if (string && string.split('.')[position]) {\n var matcher = string.split('.')[position].match(/^[0-9]+/);\n if (matcher && matcher[0]) {\n return Number(string.split('.')[position].match(/^[0-9]+/)[0]);\n }\n return 0;\n }\n return 0;\n }\n\n versionParser(item) {\n var numArray = [];\n var itemVersion = item && item.version && item.version.length ? item.version : '0.0.0';\n itemVersion.split('.').forEach((dig) => {\n var digit = isNaN(Number(dig)) ? dig : Number(dig);\n numArray.push(digit);\n });\n return numArray;\n }\n\n versionComparer(a, b) {\n let a_version = this.versionParser(a);\n let b_version = this.versionParser(b); // currentNewestx\n\n for (var i = 0; i < b_version.length; i++) {\n if (b_version[i] !== a_version[i] || (i + 1 == b_version.length)) {\n var bigger = a_version.every(vers => ((this.hasOnlyNumbers(vers)) || this.url.includes(\"/eap/\")) && a_version[i] > b_version[i]) ? a : b;\n // keeps EAP version from showing as main download only if it's the standard non-EAP downloads feed\n\n return bigger;\n } else {\n continue;\n }\n }\n }\n\n // this is called in the arrangData() as the callback in the retrieveData(data, callback, context). Context is \"this\"\n initialEvents(context) {\n context.getTemplate('download');\n context.getTemplate('download', true);\n context.getTemplate(\"accordion\");\n downloadHelper.changeDownload(context.dropdownEnterprise, context.downloadLink);\n downloadHelper.changeDownload(context.dropdownAgreement, context.downloadLink);\n downloadHelper.changeDownload(context.dropdown, context.downloadLink);\n downloadHelper.download(context.$domRoot, context.downloadLink);\n }\n\n arrayFrom(object) {\n let returnedArray = [];\n for (let key in object) {\n returnedArray.push(object[key]);\n }\n return returnedArray;\n }\n\n groupBy(xs, key) {\n if (xs.reduce) {\n return xs.reduce(function(rv, x) {\n (rv[x[key]] = rv[x[key]] || []).push(x);\n return rv;\n }, {});\n }\n return xs;\n }\n\n camelCaser(text) {\n var camelString = text.toLowerCase().split(' ');\n for (var c = 0; c < camelString.length; c++) {\n if (c > 0) {\n camelString[c] = camelString[c].charAt(0).toUpperCase() + camelString[c].slice(1);\n }\n }\n return camelString.join('');\n }\n\n}\n"],"names":["data","getFileExtension","fileName","fileExtension","split","pop","error","toUpperCase","getFileName","filePath","substr","lastIndexOf","getOS","navigator","appVersion","indexOf","select2","selector","length","$","imkt","done","minimumResultsForSearch","underscore","callback","underscoreRequest","_","resolve","then","retrieveData","context","type","isEnterprise","customArray","ignoreLabeling","self","this","dataVariable","defaultData","params","downloadInfo","Default","macData","Mac","linuxData","Unix","windowsData","Windows","forEach","download","platform","cloneData","os","osData","object","description","descriptionKey","clonedObject","Object","assign","zipUrl","show","includeUpdate","includeEnterprise","includeDownload","displayName","descriptionValue","selected","push","buildTrackingData","productName","productPlatform","productVersion","productReleaseDate","fileDescription","fileUrl","releaseNotes","version","changeDownload","selectElement","downloadLink","currentVersion","change","selectedProduct","find","attr","text","$domRoot","$downloadModalButton","doNotShowPostContent","href","downloadModal","downloadArea","postDownloadArea","installerButton","on","e","preventDefault","clickedModalButton","modalContainer","Modal","modalType","contentClickToHide","$modal","html","downloadButton","checkbox","cancel","off","is","removeClass","addClass","trigger","hide","hasClass","tracking","place","UpdateListView","domRoot","_classCallCheck","loadTimes","window","downloads","event","document","createEvent","receivedDownloadsData","initEvent","body","dispatchEvent","product","showEnterpriseColumn","showEnterprise","showChecksum","showMostPopularDownloadFirst","mostPopularDownload","unsortedData","enterpriseData","agreementData","dropdown","dropdownEnterprise","dropdownAgreement","downloadChosen","url","productCurrentJSON","secondURL","productArchivedJSON","thirdURL","numOfCalls","sortedList","enterpriseList","indexedList","newestDownload","latestEnterprise","labels","baseTracking","eventComponent","init","key","value","_this","bindEvents","after","groupBy","addEventListener","oldData","apply","addMetaData","getJSON","scriptEle","createElement","src","appendChild","shouldShowDropdown","scrollTo","getTemplate","osIndex","selectedIndex","selectedOS","children","getAttribute","label","operatingSystem","target","innerText","trim","next","showDetails","slideUp","hideDetails","slideDown","downloadURL","val","productEdition","toLowerCase","$this","majorVersion","minorVersion","item","versions","edition","shouldChangeDownloadsToEnterprise","downloadHelper","initialEvents","showAgreementPage","string","innerHTML","childNodes","nodeValue","replace","name","showDropdown","template","isAccordion","preChosenVersion","templateFill","thisProduct","downloadData","helpText","htmlDecode","helperTextEnterprise","helperTextLatest","comparisonVersionNumber","Number","productKey","helperText","activeVersion","versionSplit","match","sortVersion","microVersion","extension","arrangeData","_this2","arrayFrom","firstItem","newObject","released","biggerOfCurrentAndEnterprise","versionComparer","biggerOfCurrentAndNewest","indexList","_this3","sortedMajorVersion","reduce","acc","majorVersionIndex","findIndex","majorVersionObj","minorVersionIndex","minorVersionObj","sort","a","b","index","a_minor","versionSplitter","minorIndex","a_version","test","position","matcher","numArray","dig","digit","isNaN","_this4","versionParser","b_version","i","every","vers","hasOnlyNumbers","includes","returnedArray","xs","rv","x","camelString","c","charAt","slice","join"],"sourceRoot":""}