{"version":3,"sources":["../../../src/app/js/main.js"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport urlUtils from 'esri/urlUtils';\nimport esriConfig from 'esri/config';\nimport { App } from 'components/App';\n\nimport { validProductIds, defaultStrings } from 'js/config/config';\nimport { timeLeftInDaysSort } from 'utils/Utilities';\nimport babelPolyfill from 'babel-polyfill';\nimport Deferred from 'dojo/Deferred';\nimport hash from 'dojo/hash';\nimport io from 'dojo/io-query';\n\nif (!babelPolyfill) {\n console.log('Error: babel-polyfill could not be detected');\n}\n\nconst validateSSOToken = (GUID) => {\n const origin = 'https://ascehazardtool.org';\n\n const validateSSOTokenDeferred = new Deferred();\n let xmlhttp = new XMLHttpRequest();\n xmlhttp.open('POST', defaultStrings.customerUrl, true);\n\n const request =\n '' +\n '' +\n '' +\n '' +\n GUID +\n '' +\n '';\n\n xmlhttp.onreadystatechange = () => {\n if (xmlhttp.readyState === 4) {\n // Server returned with OK\n if (xmlhttp.status === 200) {\n const xmlDoc = $.parseXML(xmlhttp.responseText);\n // console.log('Customer Information', xmlDoc);\n const $xml = $(xmlDoc);\n validateSSOTokenDeferred.resolve({\n loggedIn: true,\n MasterCustomerId: $xml.find('MasterCustomerId').text(),\n labelName: $xml.find('LabelName').text(),\n firstName: $xml.find('FirstName').text(),\n lastName: $xml.find('LastName').text(),\n guid: GUID,\n });\n }\n // Server error - Redirect user to ASCE logout page to redirect to our application\n else if (xmlhttp.status === 500) {\n // LOCAL/STAGING\n // window.location.replace(`${defaultStrings.signOutUrl}${defaultStrings.signInUrl}https://localhost/~dnguyendo/ASCE/build/`);\n\n // PRODUCTION\n window.location.replace(`${defaultStrings.signOutUrl}${defaultStrings.signInUrl}${origin}`);\n }\n }\n };\n xmlhttp.setRequestHeader('Content-Type', 'text/xml');\n xmlhttp.send(request);\n return validateSSOTokenDeferred;\n};\n\nconst queryLicenseInfo = (userInfo) => {\n const queryUserLicenseInfoDeferred = new Deferred();\n let xmlhttp = new XMLHttpRequest();\n xmlhttp.open('POST', defaultStrings.bluerasterUrl, true);\n\n const request =\n '' +\n '' +\n '' +\n '' +\n userInfo.MasterCustomerId +\n '' +\n // + '' + '000011374286' + ''\n '';\n\n // const request =\n // '' +\n // '' +\n // '' +\n // '' +\n // '' +\n // '';\n\n xmlhttp.onreadystatechange = function () {\n if (xmlhttp.readyState === 4) {\n if (xmlhttp.status === 200) {\n let licenseInfosArray = [];\n let userLicenseInfo = {};\n\n const xmlDoc = $.parseXML(xmlhttp.responseText);\n // console.log('License Information', xmlDoc);\n const $xml = $(xmlDoc);\n\n // No licenses - route as logged in but no active license\n if ($xml.find('ASCE_LicenseInfo').text() === '') {\n // console.log('ASCE License Info is empty');\n queryUserLicenseInfoDeferred.resolve({\n loggedIn: true,\n masterCustomerId: userInfo.MasterCustomerId,\n labelName: userInfo.LabelName,\n firstName: userInfo.firstName,\n lastName: userInfo.lastName,\n activeLicense: false,\n GUID: userInfo.guid,\n titleName: userInfo.labelName,\n licenseType: 'SINGLE',\n });\n }\n\n let licenseInfos = $xml.find('ASCE_LicenseInfo');\n let counter = 0;\n let numberOfLicenses = licenseInfos.length;\n if (numberOfLicenses === 0) {\n queryUserLicenseInfoDeferred.resolve({\n loggedIn: false,\n masterCustomerId: '',\n labelName: '',\n firstName: '',\n lastName: '',\n productId: '',\n startDate: '',\n endDate: '',\n graceDate: '',\n activeLicense: false,\n licenseType: '',\n });\n }\n while (counter < numberOfLicenses) {\n let currentLicense = licenseInfos[counter];\n let $currentLicense = $(currentLicense);\n\n const startDate = $currentLicense.find('StartDate').text();\n const endDate = $currentLicense.find('EndDate').text();\n const graceDate = $currentLicense.find('GraceDate').text();\n const timeLeftInDays = window.moment(endDate, 'MM/DD/YYYY').diff(window.moment(), 'days');\n\n const license = {\n loggedIn: true,\n masterCustomerId: $currentLicense.find('MasterCustomerId').text(),\n labelName: $currentLicense.find('LabelName').text(),\n firstName: $currentLicense.find('FirstName').text(),\n lastName: $currentLicense.find('LastName').text(),\n productId: $currentLicense.find('ProductID').text(),\n startDate: startDate,\n endDate: endDate,\n graceDate: graceDate,\n timeLeftInDays: timeLeftInDays,\n activeLicense: $currentLicense.find('LineStatus').text(),\n licenseType: $currentLicense.find('LicenseType').text(),\n titleName: userInfo.labelName,\n GUID: userInfo.guid,\n };\n\n licenseInfosArray.push(license);\n counter++;\n }\n\n if (licenseInfosArray.length > 1) {\n let singleLicenses = [],\n corporateLicenses = [];\n const todaysDate = window.moment(new Date());\n\n // Categorize by license type\n licenseInfosArray.forEach((license) => {\n if (\n license.licenseType.toLowerCase() === 'license holder' ||\n license.licenseType.toLowerCase() === 'license access'\n ) {\n corporateLicenses.push(license);\n } else {\n singleLicenses.push(license);\n }\n });\n\n // Prioritize the licenses by type and choose the license with the greatest number of days left whose startDate is on or before today's date\n if (corporateLicenses.length >= 1) {\n corporateLicenses.sort(timeLeftInDaysSort);\n let nextStartDate,\n goodIndex = 0;\n\n do {\n if (window.moment(corporateLicenses[goodIndex].startDate, 'MM/DD/YYYY') > todaysDate) {\n nextStartDate = corporateLicenses[goodIndex].startDate;\n goodIndex++;\n }\n } while (window.moment(corporateLicenses[goodIndex].startDate, 'MM/DD/YYYY') > todaysDate);\n\n userLicenseInfo = corporateLicenses[goodIndex];\n userLicenseInfo.nextStartDate = nextStartDate;\n\n if (userLicenseInfo.graceDate < userLicenseInfo.nextStartDate) {\n const gapInDays = window\n .moment(userLicenseInfo.nextStartDate, 'MM/DD/YYYY')\n .diff(window.moment(userLicenseInfo.graceDate, 'MM/DD/YYYY'), 'days');\n userLicenseInfo.daysBeforeNewStartDate = gapInDays;\n }\n } else {\n singleLicenses.sort(timeLeftInDaysSort);\n let nextStartDate,\n goodIndex = 0;\n\n do {\n if (window.moment(singleLicenses[goodIndex].startDate, 'MM/DD/YYYY') > todaysDate) {\n nextStartDate = singleLicenses[goodIndex].startDate;\n goodIndex++;\n }\n } while (window.moment(singleLicenses[goodIndex].startDate, 'MM/DD/YYYY') > todaysDate);\n\n userLicenseInfo = singleLicenses[goodIndex];\n userLicenseInfo.nextStartDate = nextStartDate;\n\n if (userLicenseInfo.graceDate < userLicenseInfo.nextStartDate) {\n const gapInDays = window\n .moment(userLicenseInfo.nextStartDate, 'MM/DD/YYYY')\n .diff(window.moment(userLicenseInfo.graceDate, 'MM/DD/YYYY'), 'days');\n userLicenseInfo.daysBeforeNewStartDate = gapInDays;\n }\n }\n }\n // Only a single license was returned\n else {\n userLicenseInfo = licenseInfosArray[0];\n }\n\n // Multiple licenses to be checked\n if (!validProductIds.includes(userLicenseInfo.productId)) {\n userLicenseInfo.activeLicense = false;\n }\n\n queryUserLicenseInfoDeferred.resolve(userLicenseInfo);\n } else {\n queryUserLicenseInfoDeferred.resolve({\n loggedIn: true,\n masterCustomerId: userInfo.MasterCustomerId,\n labelName: userInfo.LabelName,\n firstName: userInfo.firstName,\n lastName: userInfo.lastName,\n productId: '',\n startDate: '',\n endDate: '',\n graceDate: '',\n activeLicense: false,\n licenseType: '',\n });\n }\n }\n };\n // Send the POST request\n xmlhttp.setRequestHeader('Content-Type', 'text/xml');\n xmlhttp.send(request);\n\n return queryUserLicenseInfoDeferred;\n};\n\nfunction removeGUID() {\n let queryParameters = window.location.search.substring(1);\n if (queryParameters.length) {\n if (window.history !== undefined && window.history.pushState !== undefined) {\n window.history.pushState({}, document.title, window.location.pathname);\n }\n }\n}\n\nconst getLoginInfo = () => {\n const infoDeferred = new Deferred();\n // Splits off any hash information\n // const url = document.URL.split('#')[0] || false;\n // const token = url.split('GUID=')[1] || false;\n // if (token) {\n // validateSSOToken(token).then((result) => {\n // if (result.loggedIn) {\n // queryLicenseInfo(result).then((license) => {\n // infoDeferred.resolve(license);\n // removeGUID();\n // });\n // } else {\n // infoDeferred.resolve({ loggedIn: false });\n // removeGUID();\n // }\n // });\n // } else {\n // infoDeferred.resolve({ loggedIn: false });\n // removeGUID();\n // }\n infoDeferred.resolve({ loggedIn: true, activeLicense: 'A' });\n removeGUID();\n return infoDeferred;\n};\n\nconst initProxy = () => {\n // Development if not on production or beta urls\n const DEVELOPMENT =\n !window.location.origin.includes('ascehazardtool.org') && !window.location.origin.includes('asce.org');\n\n // ↓ DEVELOPMENT ↓ ↓ PRODUCTION ↓\n const proxyUrl = DEVELOPMENT ? 'proxy/proxy.php' : 'proxy/proxy.ashx';\n\n esriConfig.defaults.io.alwaysUseProxy = false;\n esriConfig.defaults.io.proxyUrl = proxyUrl;\n\n urlUtils.addProxyRule({\n urlPrefix: 'https://gis.asce.org/arcgis/rest/services/ASCE',\n proxyUrl: proxyUrl,\n });\n\n urlUtils.addProxyRule({\n urlPrefix: 'https://hdsc.nws.noaa.gov/cgi-bin/new/cgi_readH5.py',\n proxyUrl: proxyUrl,\n });\n};\n\nlet initializeApp = () => {\n require([\n 'app/vendor/jquery/dist/jquery.min.js',\n 'app/vendor/velocity/velocity.min.js',\n 'app/vendor/moment/moment.js',\n ], function ($, velocity, moment) {\n initProxy();\n\n window.jQuery.velocity = velocity;\n window.moment = moment;\n let oScript = document.createElement('script');\n oScript.type = 'text/javascript';\n oScript.onload = function () {\n getLoginInfo().then((result) => {\n // Need to manipulate date here with moment\n result.startDate = moment(result.startDate, 'M-D-YYYY');\n result.endDate = moment(result.endDate, 'M-D-YYYY');\n result.graceDate = moment(result.graceDate, 'M-D-YYYY');\n // result.timeLeftInDays = result.endDate.diff(moment(), 'days');\n result.today = moment(new Date());\n\n // Get hash from url\n const hashObject = io.queryToObject(hash());\n\n // If the hash only contains a SINGLE LOAD - it passes a string and not an array - handle issue here\n if (Object.keys(hashObject).length !== 0 && hashObject.constructor === Object && !Array.isArray(hashObject.l)) {\n hashObject.l = [hashObject.l];\n }\n\n ReactDOM.render(, root);\n });\n };\n document.getElementsByTagName('head')[0].appendChild(oScript);\n oScript.src = 'app/vendor/Materialize/dist/js/materialize.min.js';\n });\n};\n\ninitializeApp();\n"]}