Hacked By AnonymousFox

Current Path : C:/AppServ/www/financial/stacked/code/es5/modules/
Upload File :
Current File : C:/AppServ/www/financial/stacked/code/es5/modules/drag-panes.js.map

{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highstock JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/drag-panes\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * Drag-panes module\n *\n * (c) 2010-2024 Highsoft AS\n * Author: Kacper Madej\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/drag-panes\", [[\"highcharts/highcharts\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/drag-panes\"] = factory(require(\"highcharts\"));\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ drag_panes_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n;// ./code/es5/es-modules/Extensions/DragPanes/AxisResizerDefaults.js\n/* *\n *\n *  Plugin for resizing axes / panes in a chart.\n *\n *  (c) 2010-2024 Highsoft AS\n *\n *  Author: Kacper Madej\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n/* *\n *\n *  API Options\n *\n * */\nvar AxisResizerDefaults = {\n    /**\n     * Minimal size of a resizable axis. Could be set as a percent\n     * of plot area or pixel size.\n     *\n     * @sample {highstock} stock/yaxis/resize-min-max-length\n     *         minLength and maxLength\n     *\n     * @type      {number|string}\n     * @product   highstock\n     * @requires  modules/drag-panes\n     * @apioption yAxis.minLength\n     */\n    minLength: '10%',\n    /**\n     * Maximal size of a resizable axis. Could be set as a percent\n     * of plot area or pixel size.\n     *\n     * @sample {highstock} stock/yaxis/resize-min-max-length\n     *         minLength and maxLength\n     *\n     * @type      {number|string}\n     * @product   highstock\n     * @requires  modules/drag-panes\n     * @apioption yAxis.maxLength\n     */\n    maxLength: '100%',\n    /**\n     * Options for axis resizing. It adds a thick line between panes which\n     * the user can drag in order to resize the panes.\n     *\n     * @sample {highstock} stock/demo/candlestick-and-volume\n     *         Axis resizing enabled\n     *\n     * @product      highstock\n     * @requires     modules/drag-panes\n     * @optionparent yAxis.resize\n     */\n    resize: {\n        /**\n         * Contains two arrays of axes that are controlled by control line\n         * of the axis.\n         *\n         * @requires modules/drag-panes\n         */\n        controlledAxis: {\n            /**\n             * Array of axes that should move out of the way of resizing\n             * being done for the current axis. If not set, the next axis\n             * will be used.\n             *\n             * @sample {highstock} stock/yaxis/multiple-resizers\n             *         Three panes with resizers\n             * @sample {highstock} stock/yaxis/resize-multiple-axes\n             *         One resizer controlling multiple axes\n             *\n             * @type     {Array<number|string>}\n             * @default  []\n             * @requires modules/drag-panes\n             */\n            next: [],\n            /**\n             * Array of axes that should move with the current axis\n             * while resizing.\n             *\n             * @sample {highstock} stock/yaxis/multiple-resizers\n             *         Three panes with resizers\n             * @sample {highstock} stock/yaxis/resize-multiple-axes\n             *         One resizer controlling multiple axes\n             *\n             * @type     {Array<number|string>}\n             * @default  []\n             * @requires modules/drag-panes\n             */\n            prev: []\n        },\n        /**\n         * Enable or disable resize by drag for the axis.\n         *\n         * @sample {highstock} stock/demo/candlestick-and-volume\n         *         Enabled resizer\n         *\n         * @requires modules/drag-panes\n         */\n        enabled: false,\n        /**\n         * Cursor style for the control line.\n         *\n         * In styled mode use class `highcharts-axis-resizer` instead.\n         *\n         * @requires modules/drag-panes\n         */\n        cursor: 'ns-resize',\n        /**\n         * Color of the control line.\n         *\n         * In styled mode use class `highcharts-axis-resizer` instead.\n         *\n         * @sample {highstock} stock/yaxis/styled-resizer\n         *         Styled resizer\n         *\n         * @type     {Highcharts.ColorString}\n         * @requires modules/drag-panes\n         */\n        lineColor: \"#cccccc\" /* Palette.neutralColor20 */,\n        /**\n         * Dash style of the control line.\n         *\n         * In styled mode use class `highcharts-axis-resizer` instead.\n         *\n         * @see For supported options check [dashStyle](#plotOptions.series.dashStyle)\n         *\n         * @sample {highstock} stock/yaxis/styled-resizer\n         *         Styled resizer\n         *\n         * @requires modules/drag-panes\n         */\n        lineDashStyle: 'Solid',\n        /**\n         * Width of the control line.\n         *\n         * In styled mode use class `highcharts-axis-resizer` instead.\n         *\n         * @sample {highstock} stock/yaxis/styled-resizer\n         *         Styled resizer\n         *\n         * @requires modules/drag-panes\n         */\n        lineWidth: 4,\n        /**\n         * Horizontal offset of the control line.\n         *\n         * @sample {highstock} stock/yaxis/styled-resizer\n         *         Styled resizer\n         *\n         * @requires modules/drag-panes\n         */\n        x: 0,\n        /**\n         * Vertical offset of the control line.\n         *\n         * @sample {highstock} stock/yaxis/styled-resizer\n         *         Styled resizer\n         *\n         * @requires modules/drag-panes\n         */\n        y: 0\n    }\n};\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var DragPanes_AxisResizerDefaults = (AxisResizerDefaults);\n\n;// ./code/es5/es-modules/Extensions/DragPanes/AxisResizer.js\n/* *\n *\n *  Plugin for resizing axes / panes in a chart.\n *\n *  (c) 2010-2024 Highsoft AS\n *\n *  Author: Kacper Madej\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The AxisResizer class.\n *\n * @private\n * @class\n * @name Highcharts.AxisResizer\n *\n * @param {Highcharts.Axis} axis\n *        Main axis for the AxisResizer.\n */\nvar AxisResizer = /** @class */ (function () {\n    /* *\n     *\n     *  Constructor\n     *\n     * */\n    function AxisResizer(axis) {\n        this.init(axis);\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Initialize the AxisResizer object.\n     *\n     * @function Highcharts.AxisResizer#init\n     *\n     * @param {Highcharts.Axis} axis\n     *        Main axis for the AxisResizer.\n     */\n    AxisResizer.prototype.init = function (axis, update) {\n        this.axis = axis;\n        this.options = axis.options.resize || {};\n        this.render();\n        if (!update) {\n            // Add mouse events.\n            this.addMouseEvents();\n        }\n    };\n    /**\n     * Render the AxisResizer\n     *\n     * @function Highcharts.AxisResizer#render\n     */\n    AxisResizer.prototype.render = function () {\n        var resizer = this,\n            axis = resizer.axis,\n            chart = axis.chart,\n            options = resizer.options,\n            x = options.x || 0,\n            y = options.y, \n            // Normalize control line position according to the plot area\n            pos = clamp(axis.top + axis.height + y,\n            chart.plotTop,\n            chart.plotTop + chart.plotHeight);\n        var attr = {};\n        if (!chart.styledMode) {\n            attr = {\n                cursor: options.cursor,\n                stroke: options.lineColor,\n                'stroke-width': options.lineWidth,\n                dashstyle: options.lineDashStyle\n            };\n        }\n        // Register current position for future reference.\n        resizer.lastPos = pos - y;\n        if (!resizer.controlLine) {\n            resizer.controlLine = chart.renderer.path()\n                .addClass('highcharts-axis-resizer');\n        }\n        // Add to axisGroup after axis update, because the group is recreated\n        // Do .add() before path is calculated because strokeWidth() needs it.\n        resizer.controlLine.add(axis.axisGroup);\n        var lineWidth = chart.styledMode ?\n                resizer.controlLine.strokeWidth() :\n                options.lineWidth;\n        attr.d = chart.renderer.crispLine([\n            ['M', axis.left + x, pos],\n            ['L', axis.left + axis.width + x, pos]\n        ], lineWidth);\n        resizer.controlLine.attr(attr);\n    };\n    /**\n     * Set up the mouse and touch events for the control line.\n     *\n     * @function Highcharts.AxisResizer#addMouseEvents\n     */\n    AxisResizer.prototype.addMouseEvents = function () {\n        var resizer = this,\n            ctrlLineElem = resizer.controlLine.element,\n            container = resizer.axis.chart.container,\n            eventsToUnbind = [];\n        var mouseMoveHandler,\n            mouseUpHandler,\n            mouseDownHandler;\n        // Create mouse events' handlers.\n        // Make them as separate functions to enable wrapping them:\n        resizer.mouseMoveHandler = mouseMoveHandler = function (e) { return (resizer.onMouseMove(e)); };\n        resizer.mouseUpHandler = mouseUpHandler = function (e) { return (resizer.onMouseUp(e)); };\n        resizer.mouseDownHandler = mouseDownHandler = function () { return (resizer.onMouseDown()); };\n        eventsToUnbind.push(\n        // Add mouse move and mouseup events. These are bind to doc/div,\n        // because resizer.grabbed flag is stored in mousedown events.\n        addEvent(container, 'mousemove', mouseMoveHandler), addEvent(container.ownerDocument, 'mouseup', mouseUpHandler), addEvent(ctrlLineElem, 'mousedown', mouseDownHandler), \n        // Touch events.\n        addEvent(container, 'touchmove', mouseMoveHandler), addEvent(container.ownerDocument, 'touchend', mouseUpHandler), addEvent(ctrlLineElem, 'touchstart', mouseDownHandler));\n        resizer.eventsToUnbind = eventsToUnbind;\n    };\n    /**\n     * Mouse move event based on x/y mouse position.\n     *\n     * @function Highcharts.AxisResizer#onMouseMove\n     *\n     * @param {Highcharts.PointerEventObject} e\n     *        Mouse event.\n     */\n    AxisResizer.prototype.onMouseMove = function (e) {\n        /*\n         * In iOS, a mousemove event with e.pageX === 0 is fired when holding\n         * the finger down in the center of the scrollbar. This should\n         * be ignored. Borrowed from Navigator.\n         */\n        if (!e.touches || e.touches[0].pageX !== 0) {\n            var pointer = this.axis.chart.pointer;\n            // Drag the control line\n            if (this.grabbed && pointer) {\n                this.hasDragged = true;\n                this.updateAxes(pointer.normalize(e).chartY - (this.options.y || 0));\n            }\n        }\n    };\n    /**\n     * Mouse up event based on x/y mouse position.\n     *\n     * @function Highcharts.AxisResizer#onMouseUp\n     *\n     * @param {Highcharts.PointerEventObject} e\n     *        Mouse event.\n     */\n    AxisResizer.prototype.onMouseUp = function (e) {\n        var pointer = this.axis.chart.pointer;\n        if (this.hasDragged && pointer) {\n            this.updateAxes(pointer.normalize(e).chartY - (this.options.y || 0));\n        }\n        // Restore runPointActions.\n        this.grabbed = this.hasDragged = this.axis.chart.activeResizer = void 0;\n    };\n    /**\n     * Mousedown on a control line.\n     * Will store necessary information for drag&drop.\n     *\n     * @function Highcharts.AxisResizer#onMouseDown\n     */\n    AxisResizer.prototype.onMouseDown = function () {\n        var _a;\n        // Clear all hover effects.\n        (_a = this.axis.chart.pointer) === null || _a === void 0 ? void 0 : _a.reset(false, 0);\n        // Disable runPointActions.\n        this.grabbed = this.axis.chart.activeResizer = true;\n    };\n    /**\n     * Update all connected axes after a change of control line position\n     *\n     * @function Highcharts.AxisResizer#updateAxes\n     *\n     * @param {number} chartY\n     */\n    AxisResizer.prototype.updateAxes = function (chartY) {\n        var resizer = this,\n            chart = resizer.axis.chart,\n            axes = resizer.options.controlledAxis,\n            nextAxes = axes.next.length === 0 ?\n                [chart.yAxis.indexOf(resizer.axis) + 1] : axes.next, \n            // Main axis is included in the prev array by default\n            prevAxes = [resizer.axis].concat(axes.prev), \n            // Prev and next configs\n            axesConfigs = [],\n            plotTop = chart.plotTop,\n            plotHeight = chart.plotHeight,\n            plotBottom = plotTop + plotHeight,\n            calculatePercent = function (value) { return (value * 100 / plotHeight + '%'); },\n            normalize = function (val,\n            min,\n            max) { return (Math.round(clamp(val,\n            min,\n            max))); };\n        // Normalize chartY to plot area limits\n        chartY = clamp(chartY, plotTop, plotBottom);\n        var stopDrag = false,\n            yDelta = chartY - resizer.lastPos;\n        // Update on changes of at least 1 pixel in the desired direction\n        if (yDelta * yDelta < 1) {\n            return;\n        }\n        var isFirst = true;\n        // First gather info how axes should behave\n        for (var _i = 0, _a = [prevAxes, nextAxes]; _i < _a.length; _i++) {\n            var axesGroup = _a[_i];\n            for (var _b = 0, axesGroup_1 = axesGroup; _b < axesGroup_1.length; _b++) {\n                var axisInfo = axesGroup_1[_b];\n                // Axes given as array index, axis object or axis id\n                var axis = isNumber(axisInfo) ?\n                        // If it's a number - it's an index\n                        chart.yAxis[axisInfo] :\n                        (\n                        // If it's first elem. in first group\n                        isFirst ?\n                            // Then it's an Axis object\n                            axisInfo :\n                            // Else it should be an id\n                            chart.get(axisInfo)),\n                    axisOptions = axis && axis.options,\n                    optionsToUpdate = {};\n                var height = void 0,\n                    top_1 = void 0;\n                // Skip if axis is not found\n                // or it is navigator's yAxis (#7732)\n                if (!axisOptions || axisOptions.isInternal) {\n                    isFirst = false;\n                    continue;\n                }\n                top_1 = axis.top;\n                var minLength = Math.round(relativeLength(axisOptions.minLength || NaN,\n                    plotHeight)),\n                    maxLength = Math.round(relativeLength(axisOptions.maxLength || NaN,\n                    plotHeight));\n                if (!isFirst && axesGroup === nextAxes) {\n                    // Try to change height first. yDelta could had changed\n                    yDelta = chartY - resizer.lastPos;\n                    // Normalize height to option limits\n                    height = normalize(axis.len - yDelta, minLength, maxLength);\n                    // Adjust top, so the axis looks like shrinked from top\n                    top_1 = axis.top + yDelta;\n                    // Check for plot area limits\n                    if (top_1 + height > plotBottom) {\n                        var hDelta = plotBottom - height - top_1;\n                        chartY += hDelta;\n                        top_1 += hDelta;\n                    }\n                    // Fit to plot - when overflowing on top\n                    if (top_1 < plotTop) {\n                        top_1 = plotTop;\n                        if (top_1 + height > plotBottom) {\n                            height = plotHeight;\n                        }\n                    }\n                    // If next axis meets min length, stop dragging:\n                    if (height === minLength) {\n                        stopDrag = true;\n                    }\n                    axesConfigs.push({\n                        axis: axis,\n                        options: {\n                            top: calculatePercent(top_1 - plotTop),\n                            height: calculatePercent(height)\n                        }\n                    });\n                }\n                else {\n                    // Normalize height to option limits\n                    height = normalize(chartY - top_1, minLength, maxLength);\n                    // If prev axis meets max length, stop dragging:\n                    if (height === maxLength) {\n                        stopDrag = true;\n                    }\n                    // Check axis size limits\n                    chartY = top_1 + height;\n                    axesConfigs.push({\n                        axis: axis,\n                        options: {\n                            height: calculatePercent(height)\n                        }\n                    });\n                }\n                isFirst = false;\n                optionsToUpdate.height = height;\n            }\n        }\n        // If we hit the min/maxLength with dragging, don't do anything:\n        if (!stopDrag) {\n            // Now update axes:\n            for (var _c = 0, axesConfigs_1 = axesConfigs; _c < axesConfigs_1.length; _c++) {\n                var config = axesConfigs_1[_c];\n                config.axis.update(config.options, false);\n            }\n            chart.redraw(false);\n        }\n    };\n    /**\n     * Destroy AxisResizer. Clear outside references, clear events,\n     * destroy elements, nullify properties.\n     *\n     * @function Highcharts.AxisResizer#destroy\n     */\n    AxisResizer.prototype.destroy = function () {\n        var resizer = this,\n            axis = resizer.axis;\n        // Clear resizer in axis\n        delete axis.resizer;\n        // Clear control line events\n        if (this.eventsToUnbind) {\n            this.eventsToUnbind.forEach(function (unbind) { return unbind(); });\n        }\n        // Destroy AxisResizer elements\n        resizer.controlLine.destroy();\n        // Nullify properties\n        for (var _i = 0, _a = Object.keys(resizer); _i < _a.length; _i++) {\n            var key = _a[_i];\n            resizer[key] = null;\n        }\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    // Default options for AxisResizer.\n    AxisResizer.resizerOptions = DragPanes_AxisResizerDefaults;\n    return AxisResizer;\n}());\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var DragPanes_AxisResizer = (AxisResizer);\n\n;// ./code/es5/es-modules/Extensions/DragPanes/DragPanes.js\n/* *\n *\n *  Plugin for resizing axes / panes in a chart.\n *\n *  (c) 2010-2024 Highsoft AS\n *\n *  Author: Kacper Madej\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\nvar DragPanes_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, wrap = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).wrap;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction compose(AxisClass, PointerClass) {\n    if (!AxisClass.keepProps.includes('resizer')) {\n        merge(true, defaultOptions.yAxis, DragPanes_AxisResizer.resizerOptions);\n        // Keep resizer reference on axis update\n        AxisClass.keepProps.push('resizer');\n        DragPanes_addEvent(AxisClass, 'afterRender', onAxisAfterRender);\n        DragPanes_addEvent(AxisClass, 'destroy', onAxisDestroy);\n        wrap(PointerClass.prototype, 'runPointActions', wrapPointerRunPointActions);\n        wrap(PointerClass.prototype, 'drag', wrapPointerDrag);\n    }\n}\n/**\n * Add new AxisResizer, update or remove it\n * @private\n */\nfunction onAxisAfterRender() {\n    var axis = this,\n        resizer = axis.resizer,\n        resizerOptions = axis.options.resize;\n    if (resizerOptions) {\n        var enabled = resizerOptions.enabled !== false;\n        if (resizer) {\n            // Resizer present and enabled\n            if (enabled) {\n                // Update options\n                resizer.init(axis, true);\n                // Resizer present, but disabled\n            }\n            else {\n                // Destroy the resizer\n                resizer.destroy();\n            }\n        }\n        else {\n            // Resizer not present and enabled\n            if (enabled) {\n                // Add new resizer\n                axis.resizer = new DragPanes_AxisResizer(axis);\n            }\n            // Resizer not present and disabled, so do nothing\n        }\n    }\n}\n/**\n * Clear resizer on axis remove.\n * @private\n */\nfunction onAxisDestroy(e) {\n    var axis = this;\n    if (!e.keepEvents && axis.resizer) {\n        axis.resizer.destroy();\n    }\n}\n/**\n * Prevent default drag action detection while dragging a control line of\n * AxisResizer. (#7563)\n * @private\n */\nfunction wrapPointerDrag(proceed) {\n    var pointer = this;\n    if (!pointer.chart.activeResizer) {\n        proceed.apply(pointer, [].slice.call(arguments, 1));\n    }\n}\n/**\n * Prevent any hover effects while dragging a control line of AxisResizer.\n * @private\n */\nfunction wrapPointerRunPointActions(proceed) {\n    var pointer = this;\n    if (!pointer.chart.activeResizer) {\n        proceed.apply(pointer, [].slice.call(arguments, 1));\n    }\n}\n/* *\n *\n *  Default Export\n *\n * */\nvar DragPanes = {\n    compose: compose\n};\n/* harmony default export */ var DragPanes_DragPanes = (DragPanes);\n\n;// ./code/es5/es-modules/masters/modules/drag-panes.src.js\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.AxisResizer = DragPanes_AxisResizer;\nDragPanes_DragPanes.compose(G.Axis, G.Pointer);\n/* harmony default export */ var drag_panes_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","drag_panes_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","DragPanes_AxisResizerDefaults","minLength","maxLength","resize","controlledAxis","next","prev","enabled","cursor","lineColor","lineDashStyle","lineWidth","x","y","addEvent","clamp","isNumber","relativeLength","AxisResizer","axis","init","update","options","render","addMouseEvents","resizer","chart","pos","top","height","plotTop","plotHeight","attr","styledMode","stroke","dashstyle","lastPos","controlLine","renderer","path","addClass","add","axisGroup","strokeWidth","crispLine","left","width","mouseMoveHandler","mouseUpHandler","mouseDownHandler","ctrlLineElem","element","container","eventsToUnbind","e","onMouseMove","onMouseUp","onMouseDown","push","ownerDocument","touches","pageX","pointer","grabbed","hasDragged","updateAxes","normalize","chartY","activeResizer","_a","reset","axes","nextAxes","length","yAxis","indexOf","prevAxes","concat","axesConfigs","plotBottom","calculatePercent","value","val","min","max","Math","round","stopDrag","yDelta","isFirst","_i","axesGroup","_b","axesGroup_1","axisInfo","axisOptions","optionsToUpdate","top_1","isInternal","NaN","len","hDelta","_c","axesConfigs_1","config","redraw","destroy","forEach","unbind","keys","resizerOptions","defaultOptions","DragPanes_addEvent","merge","wrap","onAxisAfterRender","onAxisDestroy","keepEvents","wrapPointerDrag","proceed","apply","slice","arguments","wrapPointerRunPointActions","G","DragPanes_DragPanes","compose","AxisClass","PointerClass","keepProps","includes","DragPanes_AxisResizer","Axis","Pointer"],"mappings":"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"}

Hacked By AnonymousFox1.0, Coded By AnonymousFox