import { drawColumnChartHighcharts } from "./chartColumn.mjs"; import { calculateAndFormatDailySumObservations, calculateAndFormatMonthlySumObservations, calculateAndFormatDailyMaximumObservations, calculateAndFormatMonthlyMaximumObservations, calculateAndFormatDailyMinimumObservations, calculateAndFormatMonthlyMinimumObservations, calculateAndFormatDailyAverageObservations, calculateAndFormatMonthlyAverageObservations, } from "./dropDownListProcessing.mjs"; /** * Draw a column chart based on the selected aggregation options from a drop-down list * * @param {String} selectedAggregationType A string representing the selected aggregation type. The currently supported strings include `Sum`, `Maximum`, `Minimum` and `Average` * @param {String} selectedAggregationDuration A string representing the selected aggregation duration. The currently supported strings include `Daily` and `Monthly` * @param {Array} observationsAggregationNestedArr An array made up of sub-array(s) of aggregated observations * @param {String} selectedSamplingRateAbbrev A string representing the abbreviated form of the selected sampling rate option * @param {Array} uniqueCalendarDatesNestedArr An array made up of sub-array(s) of unique calendar date(s) string(s) * @param {Array} formattedMetadataNestedArr An array of sub-arrays of formatted metadata properties * @returns {undefined} undefined */ export const drawColumnChartBasedOnSelectedAggregationOptions = function ( selectedAggregationTypeArr, selectedAggregationDuration, observationsAggregationNestedArr, selectedSamplingRateAbbrev, uniqueCalendarDatesNestedArr, formattedMetadataNestedArr ) { if ( selectedAggregationTypeArr === "Sum" && selectedAggregationDuration === "Daily" ) { // Formatted observations and metadata for chart - daily / sum const [ formattedObservationsSumDailyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatDailySumObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsSumDailyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Sum" && selectedAggregationDuration === "Monthly" ) { // Formatted observations and metadata for chart - monthly / sum const [ formattedObservationsSumMonthlyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatMonthlySumObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsSumMonthlyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Maximum" && selectedAggregationDuration === "Daily" ) { // Formatted observations and metadata for chart - daily / maximum const [ formattedObservationsMaximumDailyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatDailyMaximumObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsMaximumDailyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Maximum" && selectedAggregationDuration === "Monthly" ) { // Formatted observations and metadata for chart - monthly / maximum const [ formattedObservationsMaximumMonthlyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatMonthlyMaximumObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsMaximumMonthlyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Minimum" && selectedAggregationDuration === "Daily" ) { // Formatted observations and metadata for chart - daily / minimum const [ formattedObservationsMinimumDailyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatDailyMinimumObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsMinimumDailyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Minimum" && selectedAggregationDuration === "Monthly" ) { // Formatted observations and metadata for chart - monthly / minimum const [ formattedObservationsMinimumMonthlyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatMonthlyMinimumObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsMinimumMonthlyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Average" && selectedAggregationDuration === "Daily" ) { // Formatted observations and metadata for chart - daily / average const [ formattedObservationsAverageDailyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatDailyAverageObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsAverageDailyNestedArr, extractedFormattedDatastreamProperties ); } else if ( selectedAggregationTypeArr === "Average" && selectedAggregationDuration === "Monthly" ) { // Formatted observations and metadata for chart - monthly / average const [ formattedObservationsAverageMonthlyNestedArr, extractedFormattedDatastreamProperties, ] = calculateAndFormatMonthlyAverageObservations( uniqueCalendarDatesNestedArr, observationsAggregationNestedArr, selectedSamplingRateAbbrev, formattedMetadataNestedArr ); drawColumnChartHighcharts( formattedObservationsAverageMonthlyNestedArr, extractedFormattedDatastreamProperties ); } };