{"version":3,"sources":["../../../../src/app/js/utils/FullReport.js"],"names":[],"mappings":"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","file":"FullReport.js","sourcesContent":["// create a document and pipe to a blob\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport * as html2canvas from 'html2canvas';\nimport { mapStore } from 'stores/MapStore';\nimport { reportStore } from 'stores/ReportStore';\nimport { criteriaStore } from 'stores/CriteriaStore';\n\nimport standardsConfig from 'js/standards.config';\n\nimport { reportActions } from 'actions/ReportActions';\n\nimport PrintTask from 'esri/tasks/PrintTask';\nimport PrintParameters from 'esri/tasks/PrintParameters';\nimport PrintTemplate from 'esri/tasks/PrintTemplate';\nimport esriRequest from 'esri/request';\n\nimport _ from 'lodash';\nimport { Promise as bbPromise } from 'promise';\n\nimport { config } from 'js/config/config';\nimport { snowLoadText } from 'js/config/text.config';\nimport { BaseGenerator as base_pdf } from 'utils/pdfUtils/BaseGenerator';\nimport { GenerateTable } from 'utils/pdfUtils/GenerateTable';\nimport { GenerateTornadoTable } from './pdfUtils/GenerateTornadoTable';\nimport { GenerateDetails } from 'utils/pdfUtils/GenerateDetails';\nimport Table from '../components/Report/Table';\n\nlet start = 50;\nlet start_top = 40;\nlet col_1_4 = start;\nlet col_2_4 = 190;\nlet col_3_4 = 330;\nlet col_4_4 = 420;\nlet col_1_2 = start;\nlet col_2_2 = start + 260;\nlet row_home_1 = 80;\nlet row_1 = 110;\nlet row_1_img = row_1 + 35;\nlet row_1_content = row_1 + 215;\nlet row_2 = 430;\nlet row_2_img = row_2 + 30;\nlet row_2_content = row_2 + 215;\nlet h1 = 18;\nlet h2 = 15;\nlet h3 = 13.5;\nlet h4 = 12;\nlet p = 10;\nlet break_line = 560;\nlet download_icon_x = 495;\nlet print_icon_x = 535;\nlet width_logo = 90;\nlet width_map = 250;\nlet width_icon = 25;\nlet report_row_1 = 330;\nlet report_row_2 = report_row_1 + 100;\nlet report_row_3 = report_row_1 + 200;\nlet report_map = 230;\nlet x = 'XXXXX';\nlet page_num_x = 500;\nlet page_num_y = 750;\n\nlet loadPageHeight = 700;\nlet rowHeight = 15;\nlet resultsIndent = 25;\nlet dateAccessed = new Date();\nlet resultsYValue = col_2_4 + 15;\n\nlet logoImg = base_pdf.logo;\n\nlet localMap = '';\nlet regionalMap = '';\nlet floodMap = '';\nlet tornadoTable = '';\n\n// Appropriate URL - removes the GUID that persists\nconst shareURL = window.location.protocol + '//' + window.location.host + window.location.pathname;\n\nconst fullReportBuilder = {\n buildReport: (loginInfo) => {\n // turn off layers\n let loads = reportStore.getState().loads;\n _.forEach(loads, (load) => {\n load.visible = false;\n });\n\n function toDataUrl(url) {\n return new bbPromise((resolve) => {\n let image = new Image();\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = this.naturalWidth; // or 'width' if you want a special/scaled size\n canvas.height = this.naturalHeight; // or 'height' if you want a special/scaled size\n canvas.getContext('2d').drawImage(this, 0, 0);\n // ... or get as Data URI\n resolve(canvas.toDataURL('image/png'));\n };\n image.setAttribute('crossOrigin', 'anonymous');\n image.src = url;\n });\n }\n\n let { map, basemapGallery } = mapStore.getState();\n\n let details = criteriaStore.getState();\n map.centerAt([details.longitude, details.latitude]).then(() => {\n _.forEach(map.layerIds, (id) => {\n if (_.includes(id, 'layer' === false)) {\n map.getLayer(id).hide();\n }\n });\n\n // let mapUrl = 'https://gis.asce.org/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task';\n // let mapUrl =\n // 'https://ags107.blueraster.io/server/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task';\n let mapUrl =\n 'https://utility.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task';\n\n let localMapPrintTemplate = new PrintTemplate();\n localMapPrintTemplate.format = 'PNG32';\n localMapPrintTemplate.layout = 'MAP_ONLY';\n localMapPrintTemplate.preserveScale = true;\n localMapPrintTemplate.outScale = 20000;\n localMapPrintTemplate.showAttribution = false;\n localMapPrintTemplate.exportOptions = {\n width: 500,\n height: 500,\n dpi: 96,\n };\n\n let localMapParams = new PrintParameters();\n localMapParams.map = map;\n localMapParams.template = localMapPrintTemplate;\n let localMapRequest = new PrintTask(mapUrl);\n\n let regionalMapPrintTemplate = new PrintTemplate();\n regionalMapPrintTemplate.format = 'PNG32';\n regionalMapPrintTemplate.layout = 'MAP_ONLY';\n regionalMapPrintTemplate.preserveScale = true;\n regionalMapPrintTemplate.outScale = 400000;\n regionalMapPrintTemplate.showAttribution = false;\n regionalMapPrintTemplate.exportOptions = {\n width: 500,\n height: 500,\n dpi: 96,\n };\n\n let regionalMapParams = new PrintParameters();\n regionalMapParams.map = map;\n regionalMapParams.template = regionalMapPrintTemplate;\n let regionalMapRequest = new PrintTask(mapUrl);\n\n let tsunamiMapPrintTemplate = new PrintTemplate();\n tsunamiMapPrintTemplate.format = 'PNG32';\n tsunamiMapPrintTemplate.layout = 'MAP_ONLY';\n tsunamiMapPrintTemplate.preserveScale = true;\n tsunamiMapPrintTemplate.outScale = 10000;\n tsunamiMapPrintTemplate.showAttribution = false;\n tsunamiMapPrintTemplate.exportOptions = {\n width: 500,\n height: 500,\n dpi: 96,\n };\n\n let tsunamiMapParams = new PrintParameters();\n tsunamiMapParams.map = map;\n tsunamiMapParams.template = tsunamiMapPrintTemplate;\n let tsunamiMapRequest = new PrintTask(mapUrl);\n\n const floodLayer = map.getLayer('Flood');\n if (floodLayer) {\n map.getLayer('Flood').hide();\n }\n\n esriRequest.setRequestPreCallback((ioArgs) => {\n return ioArgs;\n });\n\n const updateIOArgs = (url) => {\n esriRequest.setRequestPreCallback((ioArgs) => {\n if (ioArgs.content && ioArgs.content.Web_Map_as_JSON) {\n let webmap = JSON.parse(ioArgs.content.Web_Map_as_JSON);\n\n const basemap = webmap.operationalLayers.find((layer) => {\n return layer.id !== 'map_graphics';\n });\n basemap.url = url;\n delete basemap.type;\n delete basemap.imageData;\n\n const graphics = webmap.operationalLayers.find((layer) => {\n return layer.id === 'map_graphics';\n });\n webmap.operationalLayers = [basemap, graphics];\n\n ioArgs.content.Web_Map_as_JSON = JSON.stringify(webmap);\n }\n return ioArgs;\n });\n };\n\n let localRetries = 0;\n const getLocalMap = () => {\n return new bbPromise((resolve, reject) => {\n updateIOArgs('https://services.arcgisonline.com/arcgis/rest/services/USA_Topo_Maps/MapServer');\n localMapRequest\n .execute(localMapParams)\n .then((results) => {\n toDataUrl(results.url).then((dataUrl) => {\n localMap = dataUrl;\n resolve();\n });\n })\n .catch((error) => {\n if (localRetries >= 3) {\n resolve();\n return;\n }\n localRetries += 1;\n getLocalMap().then(() => {\n resolve();\n });\n });\n });\n };\n\n let regionalRetries = 0;\n const getRegionalMap = () => {\n return new bbPromise((resolve, reject) => {\n updateIOArgs('https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer');\n regionalMapRequest\n .execute(regionalMapParams)\n .then((results) => {\n toDataUrl(results.url).then((dataUrl) => {\n regionalMap = dataUrl;\n resolve();\n });\n })\n .catch((error) => {\n if (regionalRetries >= 3) {\n resolve();\n return;\n }\n regionalRetries += 1;\n getRegionalMap().then(() => {\n resolve();\n });\n });\n });\n };\n\n let floodRetries = 0;\n const getFloodMap = () => {\n return new bbPromise((resolve, reject) => {\n updateIOArgs('https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer');\n map.getLayer('Flood').show();\n tsunamiMapRequest\n .execute(tsunamiMapParams)\n .then((results) => {\n toDataUrl(results.url).then((dataUrl) => {\n floodMap = dataUrl;\n resolve();\n });\n })\n .catch((error) => {\n if (floodRetries >= 3) {\n resolve();\n return;\n }\n floodRetries += 1;\n getFloodMap().then(() => {\n resolve();\n });\n });\n map.getLayer('Flood').hide();\n });\n };\n\n let tornadoRetries = 0;\n const getTornadoTable = (tornadoDetails) => {\n return new bbPromise((resolve, reject) => {\n const table = ;\n const tableDomRef = document.getElementById('tornado-table-hidden');\n ReactDOM.render(table, tableDomRef);\n\n html2canvas(tableDomRef, {\n width: 450,\n onclone: function (clone) {\n const clonedTableRef = clone.getElementById('tornado-table-hidden');\n clonedTableRef.style.display = 'block';\n },\n })\n .then((canvas) => {\n var dataURL = canvas.toDataURL();\n tornadoTable = dataURL;\n resolve();\n })\n .catch(() => {\n if (tornadoRetries >= 3) {\n resolve();\n return;\n }\n tornadoRetries += 1;\n getTornadoTable(tornadoDetails).then(() => {\n resolve();\n });\n });\n });\n };\n\n const promises = [getLocalMap(), getRegionalMap()];\n _.forEach(loads, (load) => {\n if (load.label === 'Flood' && load.checked === 'checked') {\n promises.push(getFloodMap());\n }\n if (load.label === 'Tornado' && load.checked === 'checked') {\n const tornadoDetails = load.details.find((detail) => detail.type === 'table');\n if (tornadoDetails) {\n promises.push(getTornadoTable(tornadoDetails));\n }\n }\n });\n\n bbPromise.all(promises).then(() => {\n esriRequest.setRequestPreCallback((ioArgs) => {\n return ioArgs;\n });\n fullReportBuilder.addSections(loginInfo);\n });\n });\n }, // end buildReport\n\n addSections: (loginInfo) => {\n let doc = new PDFDocument({\n bufferPages: true,\n margins: {\n top: 50,\n left: 50,\n right: 50,\n bottom: 15,\n },\n });\n let stream = doc.pipe(blobStream());\n\n // Metadata\n doc.info.Title = 'ASCE Report';\n doc.info.Author = 'Blue Raster';\n\n //Add details\n fullReportBuilder.addDetails(doc);\n\n //at this point the details have a set height, 360\n\n // Add Loads\n fullReportBuilder.addLoads(doc, 420, loginInfo);\n\n // Add Headers\n fullReportBuilder.addHeaders(doc);\n // add Page Numbers\n fullReportBuilder.addPageNumbers(doc);\n\n // end and display the document in the iframe to the right\n doc.end();\n reportActions.togglePreloader(false);\n stream.on('finish', () => {\n saveAs(stream.toBlob('application/pdf'), 'ASCEDesignHazardsReport.pdf');\n });\n }, // end addSections\n\n /**\n * Add text to doc\n * @returns updated Y position based on text height\n */\n addTextToDoc: (doc, text, xPosition, yPosition) => {\n const textHeight = doc.heightOfString(text);\n\n if (textHeight + yPosition > loadPageHeight) {\n doc.addPage();\n yPosition = row_home_1;\n }\n\n doc.text(text, xPosition, yPosition);\n\n const updatedYPosition = yPosition + textHeight;\n return updatedYPosition;\n },\n\n addLoads: (doc, firstPageStartHeight, loginInfo) => {\n loginInfo.loggedIn = true;\n // determine which loads to add\n let loadsToAdd = _.filter(reportStore.getState().loads, {\n checked: 'checked',\n showInReport: true,\n });\n\n // check for logged in\n if (!loginInfo.loggedIn) {\n loadsToAdd = _.filter(loadsToAdd, (load) => {\n return load.label === 'Tsunami' || load.label === 'Rain';\n });\n }\n\n let currentYValue = firstPageStartHeight;\n _.forEach(loadsToAdd, (load) => {\n if (fullReportBuilder.calcMaxHeight(load) + currentYValue > loadPageHeight) {\n doc.addPage();\n currentYValue = row_home_1;\n }\n fullReportBuilder.addLoad(load, doc, currentYValue);\n currentYValue = currentYValue + fullReportBuilder.calcMaxHeight(load);\n });\n\n //needs starting height\n if (currentYValue + 200 > loadPageHeight) {\n currentYValue = row_home_1;\n doc.addPage();\n }\n fullReportBuilder.addDisclaimer(doc, currentYValue);\n }, // end addLoads\n\n calcMaxHeight: (load) => {\n let details = criteriaStore.getState();\n\n let hawaii = false;\n if (\n (details.longitude >= 172 && details.longitude <= 180) ||\n (details.longitude < -176 && details.longitude > -180)\n ) {\n hawaii = true;\n }\n\n let defaultHeight = 0;\n switch (load.label) {\n case 'Ice':\n defaultHeight = 210;\n if (load.details.length > 3) {\n defaultHeight += 35;\n }\n return defaultHeight;\n\n case 'Snow':\n defaultHeight = 160;\n if (_.includes(load.sampleData.value[0].toLowerCase(), 'case study')) {\n defaultHeight += 120;\n }\n if (hawaii) {\n defaultHeight += 35;\n }\n if (typeof load.details[1] === 'object') {\n defaultHeight += 35;\n }\n _.forEach(load.details, (detail) => {\n if (detail.hasOwnProperty('label') && detail.label === 'Load') {\n defaultHeight += 35;\n }\n\n if (detail.type === 'note' && detail.note === snowLoadText.ELEVATION_NOTE) {\n defaultHeight += 100;\n }\n });\n if (load.details.find((detail) => detail.label === 'Ground Snow Loads for IRC only')) {\n defaultHeight += 35;\n }\n\n return defaultHeight;\n\n case 'Rain':\n defaultHeight = 225;\n if (load.details[0].value === 'No Data') {\n defaultHeight += 35;\n }\n return defaultHeight;\n case 'Wind':\n return 180;\n case 'Flood':\n return floodMap === '' ? 220 : 440;\n // return 440;\n case 'Tsunami':\n return 135;\n case 'Seismic':\n return 600;\n default:\n return 300;\n }\n }, // end calcMaxHeight\n\n addLoad: (load, doc, startingHeight) => {\n switch (load.label) {\n case 'Ice':\n fullReportBuilder.addIce(load, doc, startingHeight);\n break;\n case 'Snow':\n fullReportBuilder.addSnow(load, doc, startingHeight);\n break;\n case 'Rain':\n fullReportBuilder.addRain(load, doc, startingHeight);\n break;\n case 'Wind':\n fullReportBuilder.addWind(load, doc, startingHeight);\n break;\n case 'Flood':\n fullReportBuilder.addFlood(load, doc, startingHeight);\n break;\n case 'Tsunami':\n fullReportBuilder.addTsunami(load, doc, startingHeight);\n break;\n case 'Seismic':\n fullReportBuilder.addSeismic(load, doc, startingHeight);\n break;\n case 'Tornado':\n fullReportBuilder.addTornado(load, doc, startingHeight);\n break;\n default:\n break;\n }\n }, // end addLoad\n\n addHeaders: (doc) => {\n var range = doc.bufferedPageRange();\n for (var i = range.start; i < range.count; i++) {\n doc.switchToPage(i);\n doc.image(logoImg, start, start_top, { width: width_logo });\n // doc.image(downloadImg, download_icon_x, start_top, {width: width_icon});\n // doc.image(printImg, print_icon_x, start_top, {width: width_icon});\n }\n }, // end addHeaders\n\n addPageNumbers: (doc) => {\n const range = doc.bufferedPageRange();\n for (var i = range.start; i < range.count; i++) {\n doc.switchToPage(i);\n //get number of pages, cycle through them, add page\n doc.fontSize(8).text('Page ' + (i + 1) + ' of ' + range.count, 280, page_num_y);\n doc.fillColor('#0645AD').text(shareURL, 50, page_num_y, { link: shareURL, underline: true }).fillColor('black');\n const date = new Date();\n doc.text(date.toDateString(), 470, page_num_y);\n }\n },\n\n addDisclaimer: (doc, startingHeight) => {\n doc.lineWidth(1);\n doc.lineCap('butt').moveTo(col_1_4, startingHeight).lineTo(break_line, startingHeight).stroke();\n doc.fontSize(8);\n doc\n .text(\n 'The ASCE Hazard Tool is provided for your convenience, for informational purposes only, and is provided “as is” and without warranties of any kind. The location data included herein has been obtained from information developed, produced, and maintained by third party providers; or has been extrapolated from maps incorporated in the ASCE standard. While ASCE has made every effort to use data obtained from reliable sources or methodologies, ASCE does not make any representations or warranties as to the accuracy, completeness, reliability, currency, or quality of any data provided herein. Any third-party links provided by this Tool should not be construed as an endorsement, affiliation, relationship, or sponsorship of such third-party content by or from ASCE.',\n start,\n startingHeight + rowHeight\n )\n .moveDown()\n .text(\n 'ASCE does not intend, nor should anyone interpret, the results provided by this Tool to replace the sound judgment of a competent professional, having knowledge and experience in the appropriate field(s) of practice, nor to substitute for the standard of care required of such professionals in interpreting and applying the contents of this Tool or the ASCE standard.'\n )\n .moveDown()\n .text(\n 'In using this Tool, you expressly assume all risks associated with your use. Under no circumstances shall ASCE or its officers, directors, employees, members, affiliates, or agents be liable to you or any other person for any direct, indirect, special, incidental, or consequential damages arising from or related to your use of, or reliance on, the Tool or any information obtained therein. To the fullest extent permitted by law, you agree to release and hold harmless ASCE from any and all liability of any nature arising out of or resulting from any use of data provided by the ASCE Hazard Tool.'\n );\n }, // end addDisclaimer\n\n addDetails: (doc) => {\n let detailsdoc = new GenerateDetails(doc, localMap, regionalMap);\n doc = detailsdoc.doc;\n }, // end addDetails\n\n addSeismic: (load, doc, startingHeight) => {\n let standardsVersion = criteriaStore.getState().standardsVersion;\n let soilClass = criteriaStore.getState().soilClass;\n let soilClassLabel = standardsConfig[standardsVersion].soilClassText[soilClass];\n\n // 3 possible cases - Not available, manual analysis, or normal analysis\n if (load.sampleData.value[0] === 'Not available with criteria selected.') {\n // not available case\n return;\n } else if (\n (standardsVersion === '7-10' && parseInt(soilClass) === 5) ||\n (standardsVersion === '7-16' && parseInt(soilClass) === 7)\n ) {\n // manual analysis case\n doc\n .font('Helvetica')\n .text(\n `A site response analysis shall be performed in accordance with ASCE/SEI ${standardsVersion} Section 21.1 for structures on Site Class F sites. If your structure is exempted under ASCE/SEI ${standardsVersion} Section 20.3.1, select a substitute site class.`,\n start + resultsIndent,\n startingHeight + rowHeight * 4\n );\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n doc.fontSize(p).moveDown();\n startingHeight = startingHeight + 30;\n doc\n .font('Helvetica-Bold')\n .text('Site Soil Class: ', start, startingHeight)\n .text('Results: ', start, startingHeight + rowHeight)\n .text('Data Source: ', start, startingHeight + rowHeight * 5)\n .text('Date Accessed: ', start, startingHeight + rowHeight * 6);\n doc.font('Helvetica').text(soilClassLabel, resultsYValue, startingHeight);\n doc\n .fillColor('#0645AD')\n .text('USGS Seismic Design Maps', resultsYValue, startingHeight + rowHeight * 5, {\n link: config.links.seismicDesignLink,\n underline: true,\n })\n .fillColor('black');\n doc.text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 6);\n } else {\n // normal analysis\n if (\n _.some(load.details, {\n label: 'Note',\n type: 'singleLine',\n value: 'Ground motion hazard analysis may be required. See ASCE/SEI 7-16 Section 11.4.8.',\n })\n ) {\n // seismic repsonse contained nulls\n let sItems;\n load.details.map((detail) => {\n if (detail.hasOwnProperty('items')) {\n sItems = detail.items;\n }\n });\n\n const { coefficients } = standardsConfig[standardsVersion];\n\n let row_height_multiplier = 4;\n let generated_table = new GenerateTable(doc, sItems, coefficients, startingHeight);\n doc = generated_table.doc;\n\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n doc.fontSize(p).moveDown();\n startingHeight = startingHeight + 30;\n doc\n .font('Helvetica-Bold')\n .text('Site Soil Class: ', start, startingHeight)\n .text('Results: ', start, startingHeight + rowHeight)\n .text('Data Accessed: ', start, startingHeight + rowHeight * 11)\n .text('Date Source: ', start, startingHeight + rowHeight * 12);\n\n doc.font('Helvetica').text(soilClassLabel, resultsYValue, startingHeight);\n doc\n .fillColor('#0645AD')\n .text('USGS Seismic Design Maps', resultsYValue, startingHeight + rowHeight * 12, {\n link: config.links.seismicDesignLink,\n underline: true,\n })\n .fillColor('black');\n doc.text(\n 'Ground motion hazard analysis may be required. See ASCE/SEI 7-16 Section 11.4.8.',\n start,\n startingHeight + rowHeight * 10\n );\n doc.text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 11);\n } else {\n let generated_table;\n let targetLoad;\n\n if (standardsVersion === '41-17' || standardsVersion === '41-23') {\n const hazardLevels = [\n 'Hazard Level BSE-2N',\n 'Hazard Level BSE-1N',\n 'Hazard Level BSE-2E',\n 'Hazard Level BSE-1E',\n 'TL Data',\n ];\n\n let currentStartingHeight = startingHeight;\n\n hazardLevels.forEach((hazardLevel) => {\n const hazardLevelDetail = load.details.find((detail) => detail.label === hazardLevel);\n if (hazardLevelDetail) {\n const coefficientsHazardLevel = hazardLevelDetail.items.map((item) => ({\n label: item.label,\n value: null,\n }));\n\n if (hazardLevelDetail && coefficientsHazardLevel) {\n targetLoad = hazardLevelDetail;\n\n doc\n .font('Helvetica-Bold')\n .text(`${hazardLevelDetail.label}: `, start, currentStartingHeight + start_top + rowHeight);\n doc.font('Helvetica');\n\n generated_table = new GenerateTable(\n doc,\n hazardLevelDetail.items,\n coefficientsHazardLevel,\n currentStartingHeight\n );\n\n currentStartingHeight = generated_table.endTableY - 60;\n\n if (standardsVersion === '41-17' && hazardLevel === 'Hazard Level BSE-2N') {\n currentStartingHeight += 185;\n }\n }\n }\n });\n } else {\n const { coefficients } = standardsConfig[standardsVersion];\n\n let sItems;\n load.details.map((detail) => {\n if (detail.hasOwnProperty('items')) {\n sItems = detail.items;\n }\n });\n\n generated_table = new GenerateTable(doc, sItems, coefficients, startingHeight);\n doc = generated_table.doc;\n\n targetLoad = load.details.find((detail) => detail.label === 'Seismic Design Category');\n\n if (targetLoad && generated_table) {\n // Seismic Design Category\n doc.font('Helvetica-Bold').text('Seismic Design Category:', start, generated_table.endTableY);\n doc\n .font('Helvetica')\n .text(\n targetLoad.value,\n start + doc.font('Helvetica-Bold').widthOfString('Seismic Design Category: '),\n generated_table.endTableY\n );\n }\n }\n\n doc.font('Helvetica');\n\n // Array of base64 Chartjs images\n const chartImages = fullReportBuilder.getLoadChartImages(load);\n\n if (standardsVersion === '41-23') {\n fullReportBuilder.addCharts(doc, startingHeight + 40, chartImages, load);\n } else {\n fullReportBuilder.addCharts(doc, startingHeight - 15, chartImages, load);\n }\n\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 30)\n .lineTo(break_line, startingHeight + 30)\n .stroke();\n doc.fontSize(p).moveDown();\n startingHeight = startingHeight + 40;\n\n doc.font('Helvetica').text(soilClassLabel, resultsYValue, startingHeight);\n doc.font('Helvetica-Bold').text('Site Soil Class: ', start, startingHeight);\n\n if (standardsVersion !== '41-17' && standardsVersion !== '41-23') {\n doc.text('Results: ', start, startingHeight + rowHeight);\n }\n\n if (standardsVersion === '7-22') {\n doc.addPage();\n doc\n .font('Helvetica-Bold')\n .text('Data Accessed: ', start, startingHeight + rowHeight)\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight);\n doc\n .text('Date Source: ', start, startingHeight + rowHeight * 2)\n .text(`${standardsConfig[standardsVersion].dataSource}`);\n } else {\n // Based upon how many charts we have for the load, the content after needs to render appropriately\n let afterChartsMultiplier = 10;\n chartImages.forEach((image, idx) => {\n if (idx % 2 === 0) {\n afterChartsMultiplier += 13.5;\n }\n });\n\n if (standardsVersion === '41-17' || standardsVersion === '41-23') {\n const dataAccessedDateHeight = 700;\n console.log('log.test', dataAccessedDateHeight);\n doc\n .font('Helvetica-Bold')\n .text('Data Accessed: ', start, dataAccessedDateHeight)\n .text(dateAccessed.toDateString(), resultsYValue, dataAccessedDateHeight);\n } else {\n doc\n .font('Helvetica-Bold')\n .text('Data Accessed: ', start, startingHeight + rowHeight * afterChartsMultiplier)\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * afterChartsMultiplier);\n doc\n .text('Date Source: ', start, startingHeight + rowHeight * (afterChartsMultiplier + 1))\n .text(`${standardsConfig[standardsVersion].dataSource}`);\n }\n }\n }\n doc.font('Helvetica');\n }\n }, // end addSeismic\n\n addIce: (load, doc, startingHeight) => {\n let details = criteriaStore.getState();\n // ==== Ice Loads ====\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n\n doc.fontSize(p).moveDown();\n\n startingHeight = startingHeight + 30;\n doc\n .font('Helvetica-Bold')\n .text('Results: ', start, startingHeight)\n .text('Data Source: ', start, startingHeight + rowHeight * 4)\n .text('Date Accessed: ', start, startingHeight + rowHeight * 5)\n\n .font('Helvetica')\n .text('Ice Thickness: ', start + resultsIndent, startingHeight + rowHeight)\n .text(load.details[0].value, resultsYValue, startingHeight + rowHeight)\n\n .text('Concurrent Temperature: ', start + resultsIndent, startingHeight + rowHeight * 2)\n .text(load.details[1].value, resultsYValue, startingHeight + rowHeight * 2)\n .text(\n `${standardsConfig[details.standardsVersion].gustSpeed}`,\n start + resultsIndent,\n startingHeight + rowHeight * 3\n )\n .text(load.details[2].value, resultsYValue, startingHeight + rowHeight * 3)\n .text(\n 'Standard ASCE/SEI ' + details.standardsVersion + ', Figs. 10-2 through 10-8',\n resultsYValue,\n startingHeight + rowHeight * 4\n )\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 5)\n\n .text(\n 'Ice thicknesses on structures in exposed locations at elevations higher than the surrounding terrain and in valleys and gorges may exceed the mapped values.',\n start,\n startingHeight + rowHeight * 6\n );\n let notesadded = 0;\n _.forEach(load.details, (detail) => {\n let noteHeight = rowHeight + notesadded * 2;\n if (detail.hasOwnProperty('note')) {\n if (typeof detail.note === 'string') {\n doc.text(detail.note, start, startingHeight + noteHeight * (8 + notesadded));\n notesadded++;\n } else {\n doc\n .text(detail.note.startingText, start, startingHeight + noteHeight * (8 + notesadded), { continued: true })\n .fillColor('#0645AD')\n .text(detail.note.hyperlinkText, {\n continued: true,\n link: detail.note.hyperlinkUrl,\n underline: true,\n })\n .fillColor('black')\n .text(detail.note.endingText, {\n continued: false,\n underline: false,\n });\n notesadded++;\n }\n }\n });\n }, // end addIce\n\n addSnow: (load, doc, startingHeight) => {\n let details = criteriaStore.getState();\n const { standardsVersion } = details;\n let hawaii = !!load.Hawaii;\n\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n\n doc.fontSize(p).moveDown();\n\n startingHeight = startingHeight + 30;\n doc.font('Helvetica-Bold').text('Results: ', start, startingHeight).font('Helvetica');\n\n const isCaseStudy = _.includes(load.sampleData.value[0].toLowerCase(), 'case study');\n const stressDesignGround = load.details.find((detail) => detail.label === 'Ground Snow Loads for IRC only');\n const mri20 = load.details.find((detail) => detail.label === '20-year MRI Value');\n const wind = load.details.find((detail) => detail.label === 'Winter Wind Parameter');\n let heightMultiplier = 2;\n\n if (stressDesignGround) {\n resultsYValue = col_3_4 - 25;\n }\n\n if (isCaseStudy) {\n if (standardsVersion === '7-22') {\n if (wind) {\n doc.text(`${wind.label}: `, start + resultsIndent, startingHeight + rowHeight);\n doc.text(wind.value, resultsYValue, startingHeight + rowHeight);\n }\n }\n // doc.text('Case Study Required', start + resultsIndent, startingHeight + rowHeight);\n } else {\n let pieces = load.details[0].value.split('^2');\n const widthOfValue = doc.widthOfString(pieces[0]);\n doc\n .text('Ground Snow Load, p : ', start + resultsIndent, startingHeight + rowHeight)\n .text(pieces[0], resultsYValue, startingHeight + rowHeight);\n doc.fontSize(7).text('g', start + resultsIndent + 97, startingHeight + rowHeight + 5);\n if (pieces[0] !== 'No Information Available') {\n doc.fontSize(6).text('2', resultsYValue + widthOfValue, startingHeight + rowHeight - 5);\n }\n doc.fontSize(p);\n\n if (standardsVersion === '7-22') {\n if (mri20) {\n doc.text(`${mri20.label}: `, start + resultsIndent, startingHeight + rowHeight * heightMultiplier);\n doc.text(mri20.value, resultsYValue, startingHeight + rowHeight * heightMultiplier);\n heightMultiplier++;\n }\n\n if (wind) {\n doc.text(`${wind.label}: `, start + resultsIndent, startingHeight + rowHeight * heightMultiplier);\n doc.text(wind.value, resultsYValue, startingHeight + rowHeight * heightMultiplier);\n heightMultiplier++;\n }\n }\n }\n\n doc.text('Mapped Elevation: ', start + resultsIndent, startingHeight + rowHeight * heightMultiplier);\n\n let elevationValue = '';\n let extraLoadValues = 0;\n _.forEach(load.details, (detail, index) => {\n if (detail.label === 'Mapped Elevation') {\n elevationValue = detail.value;\n }\n if (index > 0 && detail.label === 'Load') {\n doc.text(detail.value, resultsYValue, startingHeight + rowHeight * (heightMultiplier + index));\n extraLoadValues++;\n }\n });\n\n const source = load.details.find((detail) => {\n return detail.type === 'dataSource';\n });\n const sourceText = typeof source === 'undefined' ? '' : source.dataSource.hyperlinkText;\n\n doc.text(elevationValue, resultsYValue, startingHeight + rowHeight * heightMultiplier);\n heightMultiplier++;\n doc\n .text('Data Source: ', start, startingHeight + (rowHeight * heightMultiplier + extraLoadValues))\n .text(sourceText, resultsYValue, startingHeight + (rowHeight * heightMultiplier + extraLoadValues));\n heightMultiplier++;\n doc\n .text('Date Accessed: ', start, startingHeight + (rowHeight * heightMultiplier + 2 + extraLoadValues))\n .text(\n dateAccessed.toDateString(),\n resultsYValue,\n startingHeight + (rowHeight * heightMultiplier + 2 + extraLoadValues)\n );\n\n if (_.includes(load.sampleData.value[0].toLowerCase(), 'case study')) {\n if (doc.x > start) {\n doc.moveTo(start, doc.y);\n }\n doc\n .moveDown()\n .text(\n 'In \"Case Study\" areas, site-specific case studies are required to establish ground snow loads. Extreme local variations in ground snow loads in these areas preclude mapping at this scale.',\n start\n )\n .moveDown()\n .text(\n 'Ground snow load determination for such sites shall be based on an extreme value statistical analysis of data available in the vicinity of the site using a value with a 2 percent annual probability of being exceeded (50-year mean recurrence interval).',\n start\n );\n }\n\n if (hawaii) {\n if (doc.x > start) {\n doc.moveTo(start, doc.y);\n }\n doc\n .moveDown()\n .text(\n 'Snow loads are zero for Hawaii, except in mountainous regions as determined by the authority having jurisdiction.',\n start\n );\n }\n\n doc.moveTo(start, doc.y).moveDown();\n let currentY = doc.y;\n\n _.forEach(load.details, (detail) => {\n if (detail.hasOwnProperty('note')) {\n if (typeof detail.note === 'string') {\n doc.moveTo(start, doc.y).moveDown();\n if (detail.note.includes('Numbers in parentheses')) {\n currentY = fullReportBuilder.addTextToDoc(\n doc,\n 'Values provided are ground snow loads. In areas designated \"case study required,\" extreme local variations in ground snow loads preclude mapping at this scale. Site-specific case studies are required to establish ground snow loads at elevations not covered.',\n resultsYValue,\n currentY\n );\n\n currentY = currentY + rowHeight;\n } else {\n currentY = fullReportBuilder.addTextToDoc(doc, detail.note, resultsYValue, currentY);\n currentY = currentY + rowHeight;\n }\n } else {\n if (\n detail.note.hasOwnProperty('startingText') ||\n detail.note.hasOwnProperty('hyperlinkText') ||\n detail.note.hasOwnProperty('endingText')\n ) {\n doc\n .moveTo(start, currentY)\n .moveDown()\n .text(detail.note.startingText, { continued: true })\n .fillColor('#0645AD')\n .text(detail.note.hyperlinkText, {\n continued: true,\n link: detail.note.hyperlinkUrl,\n underline: true,\n })\n .fillColor('black')\n .text(detail.note.endingText, {\n continued: false,\n underline: false,\n });\n }\n }\n }\n });\n\n if (standardsVersion === '7-22') {\n if (stressDesignGround) {\n fullReportBuilder.addTextToDoc(doc, `${stressDesignGround.label}, p :`, start, currentY);\n const widthOfString = doc.widthOfString(`${stressDesignGround.label}, p`);\n doc.fontSize(7).text('g(asd)', widthOfString + start, currentY + 5);\n doc.fontSize(p);\n\n let [value] = stressDesignGround.value.split('^2');\n if (value) {\n fullReportBuilder.addTextToDoc(doc, value, resultsYValue, currentY);\n const widthOfValue = doc.widthOfString(value);\n doc.fontSize(6).text('2', resultsYValue + widthOfValue, currentY - 5);\n doc.fontSize(p);\n } else {\n fullReportBuilder.addTextToDoc(doc, stressDesignGround.value, resultsYValue, currentY);\n }\n\n heightMultiplier++;\n }\n }\n }, // end addSnow\n\n addRain: (load, doc, startingHeight) => {\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n\n doc.fontSize(p).moveDown();\n\n startingHeight = startingHeight + 30;\n\n if (load.details[0].value !== 'No Data') {\n doc\n .font('Helvetica-Bold')\n .text('Results: ', start, startingHeight)\n .text('Data Source: ', start, startingHeight + rowHeight * 5)\n .text('Date Accessed: ', start, startingHeight + rowHeight * 7)\n .font('Helvetica');\n\n doc\n .text('15-minute Precipitation Intensity: ', start + resultsIndent, startingHeight + rowHeight)\n .text(load.details[0].value, resultsYValue + 30, startingHeight + rowHeight)\n // .text('Quantile: ', resultsYValue - 100, startingHeight + rowHeight * 2)\n // .text('Lower: ', resultsYValue - 100, startingHeight + rowHeight * 3)\n // .text('Upper: ', resultsYValue - 100, startingHeight + rowHeight * 4)\n // .text(load.details[1].value, resultsYValue, startingHeight + rowHeight * 2)\n // .text(load.details[2].value, resultsYValue, startingHeight + rowHeight * 3)\n // .text(load.details[3].value, resultsYValue, startingHeight + rowHeight * 4)\n\n .text('60-minute Precipitation Intensity: ', start + resultsIndent, startingHeight + rowHeight * 3)\n .text(load.details[1].value, resultsYValue + 30, startingHeight + rowHeight * 3)\n // .text('Quantile: ', resultsYValue - 100, startingHeight + rowHeight * 6)\n // .text('Lower: ', resultsYValue - 100, startingHeight + rowHeight * 7)\n // .text('Upper: ', resultsYValue - 100, startingHeight + rowHeight * 8)\n // .text(load.details[5].value, resultsYValue, startingHeight + rowHeight * 6)\n // .text(load.details[6].value, resultsYValue, startingHeight + rowHeight * 7)\n // .text(load.details[7].value, resultsYValue, startingHeight + rowHeight * 8)\n\n .text(\n 'NOAA National Weather Service, Precipitation Frequency Data Server, Atlas 14',\n resultsYValue,\n startingHeight + rowHeight * 5,\n { continued: true }\n )\n .fillColor('#0645AD')\n .text('(https://www.nws.noaa.gov/oh/hdsc/)', {\n link: 'https://www.nws.noaa.gov/oh/hdsc/',\n underline: true,\n })\n .fillColor('black')\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 7);\n } else {\n doc\n .font('Helvetica-Bold')\n .text('Results: ', start, startingHeight)\n .text('Data Source: ', start, startingHeight + rowHeight * 3)\n .text('Date Accessed: ', start, startingHeight + rowHeight * 5)\n .font('Helvetica');\n\n doc\n .text('15-minute duration: ', start + resultsIndent, startingHeight + rowHeight)\n .text('No Data', resultsYValue, startingHeight + rowHeight)\n .text('60-minute duration: ', start + resultsIndent, startingHeight + rowHeight * 2)\n .text('No Data', resultsYValue, startingHeight + rowHeight * 2)\n .text(\n 'NOAA National Weather Service, Precipitation Frequency Data Server, Atlas 14',\n resultsYValue,\n startingHeight + rowHeight * 3,\n { continued: true }\n )\n .fillColor('#0645AD')\n .text('(https://www.nws.noaa.gov/oh/hdsc/)', {\n link: 'https://www.nws.noaa.gov/oh/hdsc/',\n underline: true,\n })\n .fillColor('black')\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 5);\n if (typeof load.details[1] === 'object') {\n doc\n .moveDown()\n .text(load.details[1].note.startingText, { continued: true })\n .fillColor('#0645AD')\n .text(load.details[1].note.hyperlinkText, {\n continued: true,\n link: load.details[1].note.hyperlinkUrl,\n underline: true,\n })\n .fillColor('black')\n .text(load.details[1].note.endingText, {\n continued: false,\n underline: false,\n });\n }\n }\n }, // end addRain\n\n addWind: (load, doc, startingHeight) => {\n const { standardsVersion } = criteriaStore.getState();\n // load section header\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n doc.fontSize(p).moveDown();\n startingHeight = startingHeight + 30;\n // begin load details\n doc.font('Helvetica-Bold').text('Results: ', start, startingHeight);\n doc.font('Helvetica');\n\n const special = load.details.find((detail) => {\n return detail.label === 'Special';\n });\n const loadSource = load.details.find((d) => d.type === 'dataSource');\n\n // let newStartingRow = 0;\n startingHeight += rowHeight + 4;\n\n if (standardsVersion === '7-22' && load.isIslandTerritory) {\n const mri = load.details.find((detail) => {\n return detail.label === '10,000-year MRI';\n });\n if (mri) {\n fullReportBuilder.addTextToDoc(doc, mri.label, start + resultsIndent, startingHeight);\n startingHeight = 4 + fullReportBuilder.addTextToDoc(doc, mri.value, resultsYValue, startingHeight);\n }\n } else {\n load.details.forEach((detail) => {\n if (detail.type === 'singleLine' && detail.value && detail.label.toLowerCase() !== 'special') {\n fullReportBuilder.addTextToDoc(doc.font('Helvetica'), detail.label, start + resultsIndent, startingHeight);\n startingHeight = 4 + fullReportBuilder.addTextToDoc(doc, detail.value, resultsYValue, startingHeight);\n }\n });\n }\n\n if (special) {\n fullReportBuilder.addTextToDoc(doc, special.label, start + resultsIndent, startingHeight);\n startingHeight = rowHeight + fullReportBuilder.addTextToDoc(doc, special.value, resultsYValue, startingHeight);\n }\n\n startingHeight += rowHeight;\n\n fullReportBuilder.addTextToDoc(doc, 'Data Source: ', start, startingHeight);\n startingHeight =\n 4 + fullReportBuilder.addTextToDoc(doc, loadSource.dataSource.hyperlinkText, resultsYValue, startingHeight);\n\n fullReportBuilder.addTextToDoc(doc, 'Date Accessed: ', start, startingHeight);\n startingHeight =\n 8 + fullReportBuilder.addTextToDoc(doc, dateAccessed.toDateString(), resultsYValue, startingHeight);\n\n // add wind notes\n const notes = load.details.filter((d) => d.type === 'note');\n\n notes.forEach((n) => {\n startingHeight = 4 + fullReportBuilder.addTextToDoc(doc, n.note, start, startingHeight);\n });\n\n return startingHeight;\n // doc\n // .moveDown()\n // .text(\n // 'Mountainous terrain, gorges, ocean promontories, and special wind regions should be examined for unusual wind conditions.',\n // start\n // );\n }, // end addWind\n\n addFlood: (load, doc, startingHeight) => {\n // ==== Flood Loads ====\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n\n doc.fontSize(p).moveDown();\n\n startingHeight = startingHeight + 30;\n doc\n .font('Helvetica-Bold')\n .text('Results: ', start, startingHeight)\n .text('Data Source: ', start, startingHeight + rowHeight * 5)\n .text('Date Accessed: ', start, startingHeight + rowHeight * 7)\n .text('FIRM Panel: ', start, startingHeight + rowHeight * 8)\n .text('Insurance Study Note: ', start, startingHeight + rowHeight * 9)\n\n .font('Helvetica')\n .text('Flood Zone Categorization: ', start + resultsIndent, startingHeight + rowHeight)\n .text(load.details[0].value, resultsYValue, startingHeight + rowHeight)\n .text('Base Flood Elevation: ', start + resultsIndent, startingHeight + rowHeight * 3)\n .text(load.details[1].value, resultsYValue, startingHeight + rowHeight * 3)\n .text(\n 'FEMA National Flood Hazard Layer - Effective Flood Hazard Layer for US, where modernized ',\n resultsYValue,\n startingHeight + rowHeight * 5,\n { continued: true }\n )\n .fillColor('#0645AD')\n .text('(https://msc.fema.gov/portal/search)', {\n link: 'https://msc.fema.gov/portal/search',\n underline: true,\n })\n .fillColor('black')\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 7)\n .text('If available, download FIRM panel ', resultsYValue, startingHeight + rowHeight * 8, { continued: true })\n .fillColor('#0645AD')\n .text('here', { link: load.details[3].hyperlinkUrl, underline: true })\n .fillColor('black')\n .text('Download FEMA Flood Insurance Study for this area ', resultsYValue, startingHeight + rowHeight * 9, {\n continued: true,\n })\n .fillColor('#0645AD')\n .text('here', { link: load.details[3].hyperlinkUrl, underline: true })\n .fillColor('black');\n\n if (floodMap === '') {\n reportActions.showReportBuildPopup(\n 'Due to connectivity issues at the FEMA website, flood map images are unavailable for the PDF report. The report will continue to build with basic flood data but no images.'\n );\n // doc\n // .fillColor('red')\n // .text(\n // 'Image temporarily unavailable due to',\n // start + 30,\n // startingHeight + rowHeight * 8 + 60\n // );\n // doc\n // .text(\n // 'connection difficulties with FEMA website.',\n // start + 30,\n // startingHeight + rowHeight * 8 + 70\n // )\n // .fillColor('black');\n } else {\n doc.image(floodMap, start, startingHeight + rowHeight * 8 + 30, {\n width: width_map,\n });\n doc.rect(start, startingHeight + rowHeight * 8 + 30, width_map, 250).stroke();\n }\n }, // end addFlood\n\n addTsunami: (load, doc, startingHeight) => {\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n\n doc.fontSize(p).moveDown();\n\n startingHeight = startingHeight + 30;\n doc\n .font('Helvetica-Bold')\n .text('Results: ', start, startingHeight)\n .text('Data Source: ', start, startingHeight + rowHeight * 3)\n .text('Date Accessed: ', start, startingHeight + rowHeight * 4)\n\n .font('Helvetica')\n .text('Tsunami: ', start + resultsIndent, startingHeight + rowHeight)\n .text(\n typeof load.details[0].value === 'undefined'\n ? 'In mapped tsunami design zone. Go to https://asce7tsunami.online/ for more information.'\n : load.details[0].value,\n resultsYValue,\n startingHeight + rowHeight\n )\n .fillColor('#0645AD')\n .text('ASCE Tsunami Design Geodatabase', resultsYValue, startingHeight + rowHeight * 3, {\n link: 'http://asce7tsunami.online',\n underline: true,\n })\n .fillColor('black')\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 4);\n }, // end addTsunami\n\n addTornado: (load, doc, startingHeight) => {\n doc.fontSize(h2).font('Helvetica-Bold').text(load.label, col_1_4, startingHeight).font('Helvetica');\n\n doc.lineWidth(1);\n doc\n .lineCap('butt')\n .moveTo(col_1_4, startingHeight + 20)\n .lineTo(break_line, startingHeight + 20)\n .stroke();\n\n doc.fontSize(p).moveDown();\n\n startingHeight = startingHeight + 30;\n doc.text('Results: ', start, startingHeight);\n\n if (tornadoTable.length > 0) {\n doc.image(tornadoTable, start, startingHeight + rowHeight, { width: report_row_1 });\n doc\n .addPage()\n .font('Helvetica-Bold')\n .text('Data Source: ', start, startingHeight + rowHeight)\n .fillColor('#0645AD')\n .text('ASCE Tornado Geodatabase', resultsYValue, startingHeight + rowHeight, {\n link: 'http://asce7tsunami.online',\n underline: true,\n });\n doc\n .fillColor('black')\n .text('Date Accessed: ', start, startingHeight + rowHeight * 2)\n .text(dateAccessed.toDateString(), resultsYValue, startingHeight + rowHeight * 2);\n } else {\n doc.text(load.details[0].value, start, startingHeight + rowHeight);\n }\n }, // end addTornado\n\n addCharts: (doc, startingHeight, charts, load) => {\n let standardsVersion = criteriaStore.getState().standardsVersion;\n\n const newStartingHeight = startingHeight + 10;\n const details = load.details.filter((detail) => detail.type === 'chart');\n let multiplier = 13;\n charts.forEach((chart, idx) => {\n // How to position y\n if (idx % 2 === 0 && idx !== 0) {\n multiplier += 13;\n }\n let x = idx % 2 === 0 && charts.length !== 1 ? col_2_2 : start;\n const y = newStartingHeight + rowHeight * multiplier;\n\n const title = details[idx].title;\n const hasMCER = title.indexOf('MCER') >= 0 ? true : false;\n const title2 = hasMCER ? title.replace('R', ' ') : title;\n // Append Chart title\n if (title2.length > 37) {\n doc.text(title2, x + 10, y, { width: width_map });\n } else {\n doc.text(title2, x + 75, y, { width: width_map });\n }\n\n // Append subscript for MCER text\n if (hasMCER) {\n doc.fontSize(7);\n if (standardsVersion === '7-22') {\n let rSpacing = title.indexOf('R') > 3 ? 153 : 96;\n doc.text('R', x + rSpacing, y + 3);\n } else {\n doc.text('R', x + 97, y + 3);\n }\n doc.fontSize(p);\n }\n // Append chart\n if (standardsVersion === '7-22') {\n if (details[idx].data.length === 0) {\n doc.text('Vertical ground motion data has not yet been made available by USGS.', x, y + 15, {\n width: width_map,\n });\n return;\n } else {\n doc.image(chart, x, y + 5, { width: width_map });\n }\n } else {\n doc.image(chart, x, y + 5, { width: width_map });\n }\n // Append Axes label\n doc.fontSize(9);\n doc.text('S (g) vs T(s)', x + 75, y + 150, { width: width_map });\n // Append subscript for axes label\n doc.fontSize(7);\n doc.text('a', x + 81, y + 153);\n doc.fontSize(p);\n });\n }, // addCharts\n\n getLoadChartImages: (load) => {\n let standardsVersion = criteriaStore.getState().standardsVersion;\n\n // Full Report Charts\n const canvasHeight = 1500;\n const canvasWidth = 900;\n const canvasZIndex = 8;\n const canvasContainer = document.getElementById('seismicPrintChart');\n const canvas = document.createElement('canvas');\n canvas.id = 'designSpectrum';\n canvas.width = canvasHeight;\n canvas.height = canvasWidth;\n canvas.style.zIndex = canvasZIndex;\n\n const ctx = canvas.getContext('2d');\n\n // Turn off legend\n window.Chart.defaults.global.legend.display = false;\n const dataConfig = {\n backgroundColor: 'rgba(255, 102, 102, 0.4)',\n borderColor: 'rgba(255, 102, 102, 0.4)',\n pointBackgroundColor: 'rgba(255, 102, 102, 1)',\n pointBorderColor: 'rgba(255, 102, 102, 1)',\n showLine: true,\n };\n // Filter load details to get charts\n const charts = load.details.filter((detail) => detail.type === 'chart');\n const loadChartImages = [];\n // For each chart detail, render the chart on canvas to get base64 image - then remove from canvas\n charts.map((chart) => {\n canvasContainer.appendChild(canvas);\n\n const scatterChart = new window.Chart(ctx, {\n type: 'scatter',\n data: {\n datasets: [\n {\n label: chart.title,\n data: chart.data,\n ...dataConfig,\n },\n ],\n },\n });\n\n scatterChart.draw();\n loadChartImages.push(scatterChart.toBase64Image());\n canvasContainer.removeChild(canvas);\n });\n\n // Return the array of base64 images\n return loadChartImages;\n }, // end getLoadChartImages\n}; // end fullReportBuilder\n\nexport const buildReport = fullReportBuilder.buildReport;\n"]}