'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var types = require('../../../_dashboards/dashboard-visualisation/types.js');
var validate = require('./validate.js');
var ChartTimeseries = require('../ChartTimeseries.js');
var BarChart = require('../bar/BarChart.js');

/* eslint-disable prefer-destructuring */
class BarTimeseriesChart extends ChartTimeseries.TimeseriesChart {
    definition;
    BarChartBuilder = new BarChart.BarChart();
    withDefinition = (definition) => {
        this.definition = validate.BarTimeseriesSchema.parse(definition);
        this.initFromDefinition(this.definition);
        return this;
    };
    build = () => {
        this.buildDatasets();
        this.setStyles();
        this.datasets = this.BarChartBuilder.augmentDataset(this.datasets);
        this.BarChartBuilder.setBespokeOptions();
        return {
            type: types.DashboardVisualisationType.BAR,
            options: {
                unit: this.unit,
                timeseries: true,
            },
            data: {
                labels: this.labels,
                datasets: this.datasets,
                config: this.config,
            },
        };
    };
    setStyles = () => {
        this.datasets = this.datasets.map((set, datasetIndex) => {
            const colour = this.hexColours[datasetIndex];
            return {
                ...set,
                backgroundColor: colour,
                borderColor: colour,
            };
        });
    };
}

exports.BarTimeseriesChart = BarTimeseriesChart;
exports.default = BarTimeseriesChart;
//# sourceMappingURL=BarTimeseriesChart.js.map
