Highcharts Stock Demo

author(s): Torstein Hønsi

by Torstein Hønsi

HTML

<div id="container" style="height: 400px; min-width: 320px; max-width: 600px; margin: 0 auto"></div>

<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/stock/modules/accessibility.js"></script>

JavaScript

(function (H) {
	var U = H, addEvent = U.addEvent, defined = U.defined, pick = U.pick;
	H._modules["Core/Axis/ScrollbarAxis.js"] = /** @class */ (function () {
    function ScrollbarAxis() {
    }
    /**
     * Attaches to axis events to create scrollbars if enabled.
     *
     * @private
     *
     * @param AxisClass
     * Axis class to extend.
     *
     * @param ScrollbarClass
     * Scrollbar class to use.
     */
    ScrollbarAxis.compose = function (AxisClass, ScrollbarClass) {
        if (ScrollbarAxis.composed.indexOf(AxisClass) === -1) {
            ScrollbarAxis.composed.push(AxisClass);
        }
        else {
            return AxisClass;
        }
        var getExtremes = function (axis) {
            var axisMin = pick(axis.options && axis.options.min, axis.min);
            var axisMax = pick(axis.options && axis.options.max, axis.max);
            return {
                axisMin: axisMin,
                axisMax: axisMax,
                scrollMin: defined(axis.dataMin) ?
                    Math.min(axisMin, axis.min, axis.dataMin, pick(axis.threshold, Infinity)) : axisMin,
                scrollMax: defined(axis.dataMax) ?
                    Math.max(axisMax, axis.max, axis.dataMax, pick(axis.threshold, -Infinity)) : axisMax
            };
        };
        // Wrap axis initialization and create scrollbar if enabled:
        addEvent(AxisClass, 'afterInit', function () {
            var axis = this;
            if (axis.options &&
                axis.options.scrollbar &&
                axis.options.scrollbar.enabled) {
                // Predefined options:
                axis.options.scrollbar.vertical = !axis.horiz;
                axis.options.startOnTick = axis.options.endOnTick = false;
                axis.scrollbar = new ScrollbarClass(axis.chart.renderer, axis.options.scrollbar, axis.chart);
                addEvent(axis.scrollbar, 'changed', function (e) {
                    var _a = getExtremes(axis), axisMin =...