Sha256: e43c059d0e5d371d8ebb05ecb87a6f4085c7cd2ec897fc9d2c5b806fbfcad4e7

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

var d3 = require('d3');

import {forEach} from 'lodash';

var oneDay = 86400000;

export default {
    getData(audit) {
        var values = {},
            min,
            max,
            self = this;

        forEach(audit, function(e) {
            var date,
                type,
                value;

            if (typeof e.timestamp === 'string') {
                date = d3.time.hour(new Date(e.timestamp));
            }

            type = self.getEventType(e);

            if (date instanceof Date && typeof type === 'string') {
                value = values[date.toString()];

                if (typeof value === 'undefined') {
                    value = self.getDefaultItem();
                    value.date = date;
                }

                value[type] += 1;

                values[date.toString()] = value;

                if (typeof max === 'undefined') {
                    max = date;
                }

                if (typeof min === 'undefined') {
                    min = date;
                }

                if (date > max) {
                    max = date;
                }

                if (date < min) {
                    min = date;
                }
            }
        });

        var x = max - min;

        if (x < oneDay) {
            var delta = Math.round((86400000 - x) / 2);

            min = new Date(min.getTime() - delta);
            max = new Date(max.getTime() + delta);
        }

        return d3.time.scale()
            .domain([min, max])
            .ticks(d3.time.hours, 1)
            .map(function(date) {
                var d = values[date.toString()] || self.getDefaultItem();

                d.date = date;

                return d;
            })
            .sort(function(a, b) {
                return a.date - b.date;
            });
    }
};

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
conjur-asset-ui-1.6.0 app/src/components/chart/chart_helper_mixin.js