<commit_before>/*!
 * chartjs-plugin-crosshair v1.1.6
 * https://chartjs-plugin-crosshair.netlify.com
 * (c) 2020 Chart.js Contributors
 * Released under the MIT license
 */
(function () {
    'use strict';

    const Chart = self.Chart && Object.prototype.hasOwnProperty.call(self.Chart, 'default') ?
        self.Chart['default'] : self.Chart;

    const helpers = Chart.helpers;

    const defaultOptions = {
        enabled: false,
        zoomboxBackgroundColor: 'rgba(66,133,244,0.2)',
        zoomboxBorderColor: '#48F',
        callbacks: {
            beforeZoom: (start, end) => true,
            afterZoom: (start, end) => null
        }
    };

    Chart.plugins.register({
        id: 'zoom',

        afterInit: function(chart) {
            if (chart.config.options.scales.xAxes.length == 0) {
                return;
            }
            const xScaleType = chart.config.options.scales.xAxes[0].type;
            if (xScaleType !== 'linear' &&
                xScaleType !== 'time' &&
                xScaleType !== 'category' &&
                xScaleType !== 'logarithmic') {
                return;
            }
            if (chart.options.plugins.zoom === undefined) {
                chart.options.plugins.zoom = defaultOptions;
            }
            chart._zoomState = {
                enabled: false,
                x: null,
                originalData: [],
                originalXRange: {},
                dragStarted: false,
                dragStartX: null,
                dragEndX: null,
                suppressTooltips: false,
                reset: () => this.resetZoom(chart, false, false),
                resetButton: chart.canvas.closest('.sauce-panel').querySelector('.chart-reset-zoom'),
            };
            chart.panZoom = this.panZoom.bind(this, chart);
            chart._zoomState.resetButton.addEventListener('click', () => this.resetZoom(chart));
        },<commit_msg>The checkiest of checkpoints.<commit_after>/*!
 * chartjs-plugin-crosshair v1.1.6
 * https://chartjs-plugin-crosshair.netlify.com
 * (c) 2020 Chart.js Contributors
 * Released under the MIT license
 */
(function () {
    'use strict';

    const Chart = self.Chart && Object.prototype.hasOwnProperty.call(self.Chart, 'default') ?
        self.Chart['default'] : self.Chart;

    const helpers = Chart.helpers;

    const defaultOptions = {
        enabled: false,
        zoomboxBackgroundColor: 'rgba(66,133,244,0.2)',
        zoomboxBorderColor: '#48F',
        callbacks: {
            beforeZoom: (start, end) => true,
            afterZoom: (start, end) => null
        }
    };

    Chart.plugins.register({
        id: 'zoom',

        afterInit: function(chart) {
            if (chart.config.options.scales.xAxes.length == 0) {
                return;
            }
            const xScaleType = chart.config.options.scales.xAxes[0].type;
            if (xScaleType !== 'linear' &&
                xScaleType !== 'time' &&
                xScaleType !== 'category' &&
                xScaleType !== 'logarithmic') {
                return;
            }
            if (chart.options.plugins.zoom === undefined) {
                chart.options.plugins.zoom = defaultOptions;
            }
            chart._zoomState = {
                enabled: false,
                x: null,
                originalData: [],
                originalXRange: {},
                dragStarted: false,
                dragStartX: null,
                dragEndX: null,
                suppressTooltips: false,
                reset: () => this.resetZoom(chart, false, false),
                resetButton: chart.canvas.closest('.sauce-panel').querySelector('.chart-reset-zoom'),
            };
            chart.panZoom = this.panZoom.bind(this, chart);
            chart._zoomState.resetButton.addEventListener('click', () => this.resetZoom(chart));
            chart.canvas.addEventListener('pointerdown', ev => {
                console.warn("down", ev);
                chart._zoomState.dragCallbacks = {
                    move: this.onPointerMove.bind(this, chart),
                    up: this.onPointerUp.bind(this, chart),
                    out: this.onPointerOut.bind(this, chart),
                };
                chart.canvas.addEventListener('pointermove', chart._zoomState.dragCallbacks.move);
                chart.canvas.addEventListener('pointerup', chart._zoomState.dragCallbacks.up);
                chart.canvas.addEventListener('pointerout', chart._zoomState.dragCallbacks.out);
            });
        },

        onPointerMove: function(chart, ev) {
            console.warn("MOVE");
        },

        onPointerUp: function(chart, ev) {
            console.warn("UP");
            chart.canvas.removeEventListener('pointerup', chart._zoomState.dragCallbacks.up);
            chart.canvas.removeEventListener('pointerout', chart._zoomState.dragCallbacks.out);
            chart.canvas.removeEventListener('pointermove', chart._zoomState.dragCallbacks.move);
        },

        onPointerOut: function(chart, ev) {
            console.warn("OUT");
            chart.canvas.removeEventListener('pointerup', chart._zoomState.dragCallbacks.up);
            chart.canvas.removeEventListener('pointerout', chart._zoomState.dragCallbacks.out);
            chart.canvas.removeEventListener('pointermove', chart._zoomState.dragCallbacks.move);
        },
{'fraction_non_alphanumeric': 0.12830957230142567, 'fraction_numerical': 0.007776337715237919, 'mean_word_length': 1.8506596306068601, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 12, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7464017', 'n_tokens_mistral': 1496, 'n_tokens_neox': 1416, 'n_words': 239}