{"version":3,"sources":["../../../../src/app/js/utils/windUtil.js"],"names":[],"mappings":"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","file":"windUtil.js","sourcesContent":["import { convserionMilesMeterSecond } from 'utils/Utilities';\n\nexport function formatWindValue(value, measurement) {\n return `${Math.round(convserionMilesMeterSecond(value, 'imperial', measurement))} ${\n measurement === 'si' ? 'm/s' : 'Vmph'\n }`;\n}\n\nfunction formatNumber(x) {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\n/**\n * @param {object} swrMosaicDatasetResult\n * @description Format SWR results from the mosaic dataset: w2022_SWR_CA, SWR_CO_Mosaic_1007, and w2022_Special_Wind_Regions\n * Get values based attribute names that include mri, w2022_SWRCA_, or w2022_SWRCO_\n * If the name of the attributes change, this function might need to be updated\n * @returns {object} formattedSWRDatasetResults\n */\nexport function formatWindMosaicDatasetResults(swrMosaicDatasetResult) {\n if (\n swrMosaicDatasetResult &&\n swrMosaicDatasetResult.catalogItems &&\n swrMosaicDatasetResult.catalogItems.features.length &&\n swrMosaicDatasetResult.properties &&\n swrMosaicDatasetResult.properties.Values\n ) {\n const catalogItems = swrMosaicDatasetResult.catalogItems;\n const values = swrMosaicDatasetResult.properties.Values;\n\n const formattedSWRDatasetResults = values.reduce((resultsObj, currentValue, index) => {\n const swrFeature = catalogItems.features[index];\n const name = swrFeature.attributes.Name;\n\n // Regex to find MRI value - MRI number value is in the third index of the array:\n // Eg. \"G_AS_mri3000_update\" results in:\n // [\"G_AS_mri3000_update\", \"3000\", index: 0, input: \"G_AS_mri3000_update\", groups: undefined]\n // Eg. \"w2022_SWRCA_3000\" results in:\n // [\"w2022_SWRCA_3000\", \"3000\", index: 0, input: \"w2022_SWRCA_3000\", groups: undefined]\n let regex = /(G_AS_mri|w2022_SWRCA_|w2022_SWRCO_)(\\d+)/;\n let match = name.match(regex);\n\n if (match && match.length > 2) {\n let mri = match[2];\n\n // TODO: Maybe check for: `resultsObj[mri] !== 'NoData'` if necessary\n if (mri && !isNaN(mri) && !resultsObj[mri]) {\n resultsObj[mri] = currentValue;\n }\n } else {\n // check matches for values like USPR_mri25, USPR_mri700, etc, to find the MRI value\n regex = /(mri)(\\d+)/;\n match = name.match(regex);\n\n if (match && match.length > 2) {\n const mri = match[2];\n\n if (mri && !isNaN(mri)) {\n resultsObj[mri] = currentValue;\n }\n }\n }\n\n return resultsObj;\n }, {});\n\n return formattedSWRDatasetResults;\n }\n}\n\nexport function getMriValuesFromFormattedMosaicResults(formattedResults, measurement) {\n const mriValues = Object.entries(formattedResults).map(([mri, value]) => {\n const formattedValue = formatWindValue(value, measurement);\n\n const label = `${formatNumber(mri)}-year MRI`;\n return {\n type: 'singleLine',\n label,\n value: formattedValue,\n };\n });\n\n return mriValues;\n}\n\nexport function getMriValuesFromQueriesResults(mriValuesFromQueriesResults, recurrenceIntervalResults, measurement) {\n const mriValues = Object.keys(mriValuesFromQueriesResults).map((mri, idx) => {\n const valueFromTargetSource = recurrenceIntervalResults[idx].value;\n const name = `${formatNumber(mri)}-year MRI:${formatWindValue(valueFromTargetSource, measurement)}`;\n const [label, value] = name.split(':');\n return {\n type: 'singleLine',\n label,\n value,\n };\n });\n\n return mriValues;\n}\n"]}