UNPKG

highcharts

Version:
826 lines (790 loc) 29.6 kB
/** * @license Highcharts JS v12.1.2 (2024-12-21) * @module highcharts/modules/series-on-point * @requires highcharts * * Series on point module * * (c) 2010-2024 Highsoft AS * Author: Rafal Sebestjanski and Piotr Madej * * License: www.highcharts.com/license */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(root["_Highcharts"], root["_Highcharts"]["Point"], root["_Highcharts"]["Series"], root["_Highcharts"]["SeriesRegistry"], root["_Highcharts"]["SVGRenderer"]); else if(typeof define === 'function' && define.amd) define("highcharts/modules/series-on-point", ["highcharts/highcharts"], function (amd1) {return factory(amd1,amd1["Point"],amd1["Series"],amd1["SeriesRegistry"],amd1["SVGRenderer"]);}); else if(typeof exports === 'object') exports["highcharts/modules/series-on-point"] = factory(root["_Highcharts"], root["_Highcharts"]["Point"], root["_Highcharts"]["Series"], root["_Highcharts"]["SeriesRegistry"], root["_Highcharts"]["SVGRenderer"]); else root["Highcharts"] = factory(root["Highcharts"], root["Highcharts"]["Point"], root["Highcharts"]["Series"], root["Highcharts"]["SeriesRegistry"], root["Highcharts"]["SVGRenderer"]); })(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__260__, __WEBPACK_EXTERNAL_MODULE__820__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__540__) => { return /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ 260: /***/ ((module) => { module.exports = __WEBPACK_EXTERNAL_MODULE__260__; /***/ }), /***/ 540: /***/ ((module) => { module.exports = __WEBPACK_EXTERNAL_MODULE__540__; /***/ }), /***/ 820: /***/ ((module) => { module.exports = __WEBPACK_EXTERNAL_MODULE__820__; /***/ }), /***/ 512: /***/ ((module) => { module.exports = __WEBPACK_EXTERNAL_MODULE__512__; /***/ }), /***/ 944: /***/ ((module) => { module.exports = __WEBPACK_EXTERNAL_MODULE__944__; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = (module) => { /******/ var getter = module && module.__esModule ? /******/ () => (module['default']) : /******/ () => (module); /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": () => (/* binding */ series_on_point_src) }); // EXTERNAL MODULE: external {"amd":["highcharts/highcharts"],"commonjs":["highcharts"],"commonjs2":["highcharts"],"root":["Highcharts"]} var highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944); var highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_); ;// ./code/es-modules/Data/DataTableCore.js /* * * * (c) 2009-2024 Highsoft AS * * License: www.highcharts.com/license * * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!! * * Authors: * - Sophie Bremer * - Gøran Slettemark * - Torstein Hønsi * * */ const { fireEvent, isArray, objectEach, uniqueKey } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); /* * * * Class * * */ /** * Class to manage columns and rows in a table structure. It provides methods * to add, remove, and manipulate columns and rows, as well as to retrieve data * from specific cells. * * @class * @name Highcharts.DataTable * * @param {Highcharts.DataTableOptions} [options] * Options to initialize the new DataTable instance. */ class DataTableCore { /** * Constructs an instance of the DataTable class. * * @example * const dataTable = new Highcharts.DataTableCore({ * columns: { * year: [2020, 2021, 2022, 2023], * cost: [11, 13, 12, 14], * revenue: [12, 15, 14, 18] * } * }); * * @param {Highcharts.DataTableOptions} [options] * Options to initialize the new DataTable instance. */ constructor(options = {}) { /** * Whether the ID was automatic generated or given in the constructor. * * @name Highcharts.DataTable#autoId * @type {boolean} */ this.autoId = !options.id; this.columns = {}; /** * ID of the table for indentification purposes. * * @name Highcharts.DataTable#id * @type {string} */ this.id = (options.id || uniqueKey()); this.modified = this; this.rowCount = 0; this.versionTag = uniqueKey(); let rowCount = 0; objectEach(options.columns || {}, (column, columnName) => { this.columns[columnName] = column.slice(); rowCount = Math.max(rowCount, column.length); }); this.applyRowCount(rowCount); } /* * * * Functions * * */ /** * Applies a row count to the table by setting the `rowCount` property and * adjusting the length of all columns. * * @private * @param {number} rowCount The new row count. */ applyRowCount(rowCount) { this.rowCount = rowCount; objectEach(this.columns, (column) => { if (isArray(column)) { // Not on typed array column.length = rowCount; } }); } /** * Fetches the given column by the canonical column name. Simplified version * of the full `DataTable.getRow` method, always returning by reference. * * @param {string} columnName * Name of the column to get. * * @return {Highcharts.DataTableColumn|undefined} * A copy of the column, or `undefined` if not found. */ getColumn(columnName, // eslint-disable-next-line @typescript-eslint/no-unused-vars asReference) { return this.columns[columnName]; } /** * Retrieves all or the given columns. Simplified version of the full * `DataTable.getColumns` method, always returning by reference. * * @param {Array<string>} [columnNames] * Column names to retrieve. * * @return {Highcharts.DataTableColumnCollection} * Collection of columns. If a requested column was not found, it is * `undefined`. */ getColumns(columnNames, // eslint-disable-next-line @typescript-eslint/no-unused-vars asReference) { return (columnNames || Object.keys(this.columns)).reduce((columns, columnName) => { columns[columnName] = this.columns[columnName]; return columns; }, {}); } /** * Retrieves the row at a given index. * * @param {number} rowIndex * Row index to retrieve. First row has index 0. * * @param {Array<string>} [columnNames] * Column names to retrieve. * * @return {Record<string, number|string|undefined>|undefined} * Returns the row values, or `undefined` if not found. */ getRow(rowIndex, columnNames) { return (columnNames || Object.keys(this.columns)).map((key) => this.columns[key]?.[rowIndex]); } /** * Sets cell values for a column. Will insert a new column, if not found. * * @param {string} columnName * Column name to set. * * @param {Highcharts.DataTableColumn} [column] * Values to set in the column. * * @param {number} [rowIndex=0] * Index of the first row to change. (Default: 0) * * @param {Record<string, (boolean|number|string|null|undefined)>} [eventDetail] * Custom information for pending events. * * @emits #setColumns * @emits #afterSetColumns */ setColumn(columnName, column = [], rowIndex = 0, eventDetail) { this.setColumns({ [columnName]: column }, rowIndex, eventDetail); } /** * * Sets cell values for multiple columns. Will insert new columns, if not * found. Simplified version of the full `DataTable.setColumns`, limited to * full replacement of the columns (undefined `rowIndex`). * * @param {Highcharts.DataTableColumnCollection} columns * Columns as a collection, where the keys are the column names. * * @param {number} [rowIndex] * Index of the first row to change. Keep undefined to reset. * * @param {Record<string, (boolean|number|string|null|undefined)>} [eventDetail] * Custom information for pending events. * * @emits #setColumns * @emits #afterSetColumns */ setColumns(columns, rowIndex, eventDetail) { let rowCount = this.rowCount; objectEach(columns, (column, columnName) => { this.columns[columnName] = column.slice(); rowCount = column.length; }); this.applyRowCount(rowCount); if (!eventDetail?.silent) { fireEvent(this, 'afterSetColumns'); this.versionTag = uniqueKey(); } } /** * Sets cell values of a row. Will insert a new row if no index was * provided, or if the index is higher than the total number of table rows. * A simplified version of the full `DateTable.setRow`, limited to objects. * * @param {Record<string, number|string|undefined>} row * Cell values to set. * * @param {number} [rowIndex] * Index of the row to set. Leave `undefind` to add as a new row. * * @param {boolean} [insert] * Whether to insert the row at the given index, or to overwrite the row. * * @param {Record<string, (boolean|number|string|null|undefined)>} [eventDetail] * Custom information for pending events. * * @emits #afterSetRows */ setRow(row, rowIndex = this.rowCount, insert, eventDetail) { const { columns } = this, indexRowCount = insert ? this.rowCount + 1 : rowIndex + 1; objectEach(row, (cellValue, columnName) => { const column = columns[columnName] || eventDetail?.addColumns !== false && new Array(indexRowCount); if (column) { if (insert) { column.splice(rowIndex, 0, cellValue); } else { column[rowIndex] = cellValue; } columns[columnName] = column; } }); if (indexRowCount > this.rowCount) { this.applyRowCount(indexRowCount); } if (!eventDetail?.silent) { fireEvent(this, 'afterSetRows'); this.versionTag = uniqueKey(); } } } /* * * * Default Export * * */ /* harmony default export */ const Data_DataTableCore = (DataTableCore); /* * * * API Declarations * * */ /** * A column of values in a data table. * @typedef {Array<boolean|null|number|string|undefined>} Highcharts.DataTableColumn */ /** * A collection of data table columns defined by a object where the key is the * column name and the value is an array of the column values. * @typedef {Record<string, Highcharts.DataTableColumn>} Highcharts.DataTableColumnCollection */ /** * Options for the `DataTable` or `DataTableCore` classes. * @interface Highcharts.DataTableOptions */ /** * The column options for the data table. The columns are defined by an object * where the key is the column ID and the value is an array of the column * values. * * @name Highcharts.DataTableOptions.columns * @type {Highcharts.DataTableColumnCollection|undefined} */ /** * Custom ID to identify the new DataTable instance. * * @name Highcharts.DataTableOptions.id * @type {string|undefined} */ (''); // Keeps doclets above in JS file // EXTERNAL MODULE: external {"amd":["highcharts/highcharts","Point"],"commonjs":["highcharts","Point"],"commonjs2":["highcharts","Point"],"root":["Highcharts","Point"]} var highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_ = __webpack_require__(260); var highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default = /*#__PURE__*/__webpack_require__.n(highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_); // EXTERNAL MODULE: external {"amd":["highcharts/highcharts","Series"],"commonjs":["highcharts","Series"],"commonjs2":["highcharts","Series"],"root":["Highcharts","Series"]} var highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_ = __webpack_require__(820); // EXTERNAL MODULE: external {"amd":["highcharts/highcharts","SeriesRegistry"],"commonjs":["highcharts","SeriesRegistry"],"commonjs2":["highcharts","SeriesRegistry"],"root":["Highcharts","SeriesRegistry"]} var highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_ = __webpack_require__(512); var highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_); // EXTERNAL MODULE: external {"amd":["highcharts/highcharts","SVGRenderer"],"commonjs":["highcharts","SVGRenderer"],"commonjs2":["highcharts","SVGRenderer"],"root":["Highcharts","SVGRenderer"]} var highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_ = __webpack_require__(540); var highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default = /*#__PURE__*/__webpack_require__.n(highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_); ;// ./code/es-modules/Series/SeriesOnPointComposition.js /* * * * (c) 2010-2024 Rafal Sebestjanski, Piotr Madej * * License: www.highcharts.com/license * * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!! * * */ const { composed } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); const { bubble } = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes; const { addEvent, defined, find, isNumber, pushUnique } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); /* * * * Composition * * */ var SeriesOnPointComposition; (function (SeriesOnPointComposition) { /* * * * Declarations * * */ /* * * * Functions * * */ /** * Extends the series with a small addition. * * @private * * @param SeriesClass * Series class to use. * * @param ChartClass * Chart class to use. */ function compose(SeriesClass, ChartClass) { if (pushUnique(composed, 'SeriesOnPoint')) { const { chartGetZData, seriesAfterInit, seriesAfterRender, seriesGetCenter, seriesShowOrHide, seriesTranslate } = Additions.prototype; // We can mark support for pie series here because it's in the core. // But all other series outside the core should be marked in its // module. This is crucial when loading series-on-point before // loading a module, e.g. sunburst. // Supported series types: // - pie // - sunburst SeriesClass.types.pie.prototype.onPointSupported = true; addEvent(SeriesClass, 'afterInit', seriesAfterInit); addEvent(SeriesClass, 'afterRender', seriesAfterRender); addEvent(SeriesClass, 'afterGetCenter', seriesGetCenter); addEvent(SeriesClass, 'hide', seriesShowOrHide); addEvent(SeriesClass, 'show', seriesShowOrHide); addEvent(SeriesClass, 'translate', seriesTranslate); addEvent(ChartClass, 'beforeRender', chartGetZData); addEvent(ChartClass, 'beforeRedraw', chartGetZData); } return SeriesClass; } SeriesOnPointComposition.compose = compose; /* * * * Classes * * */ /** * @private */ class Additions { /* * * * Constructors * * */ /** * @private */ constructor(series) { /** * @ignore */ this.getColumn = bubble.prototype.getColumn; /** * @ignore */ this.getRadii = bubble.prototype.getRadii; /** * @ignore */ this.getRadius = bubble.prototype.getRadius; /** * @ignore */ this.getPxExtremes = bubble.prototype.getPxExtremes; /** * @ignore */ this.getZExtremes = bubble.prototype.getZExtremes; this.chart = series.chart; this.series = series; this.options = series.options.onPoint; } /** * Draw connector line that starts from the initial point's position * and ends in the center of the series. * @private */ drawConnector() { if (!this.connector) { this.connector = this.series.chart.renderer.path() .addClass('highcharts-connector-seriesonpoint') .attr({ zIndex: -1 }) .add(this.series.markerGroup); } const attribs = this.getConnectorAttributes(); attribs && this.connector.animate(attribs); } /** * Get connector line path and styles that connects series and point. * * @private * * @return {Highcharts.SVGAttributes} attribs - the path and styles. */ getConnectorAttributes() { const chart = this.series.chart, onPointOptions = this.options; if (!onPointOptions) { return; } const connectorOpts = onPointOptions.connectorOptions || {}, position = onPointOptions.position, connectedPoint = chart.get(onPointOptions.id); if (!(connectedPoint instanceof (highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default())) || !position || !defined(connectedPoint.plotX) || !defined(connectedPoint.plotY)) { return; } const xFrom = defined(position.x) ? position.x : connectedPoint.plotX, yFrom = defined(position.y) ? position.y : connectedPoint.plotY, xTo = xFrom + (position.offsetX || 0), yTo = yFrom + (position.offsetY || 0), width = connectorOpts.width || 1, color = connectorOpts.stroke || this.series.color, dashStyle = connectorOpts.dashstyle, attribs = { d: highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default().prototype.crispLine([ ['M', xFrom, yFrom], ['L', xTo, yTo] ], width), 'stroke-width': width }; if (!chart.styledMode) { attribs.stroke = color; attribs.dashstyle = dashStyle; } return attribs; } /** * Initialize Series on point on series init. * * @ignore */ seriesAfterInit() { if (this.onPointSupported && this.options.onPoint) { this.bubblePadding = true; this.useMapGeometry = true; this.onPoint = new Additions(this); } } /** * @ignore */ seriesAfterRender() { // Clear bubbleZExtremes to reset z calculations on update. delete this.chart.bubbleZExtremes; this.onPoint && this.onPoint.drawConnector(); } /** * Recalculate series.center (x, y and size). * * @ignore */ seriesGetCenter(e) { const onPointOptions = this.options.onPoint, center = e.positions; if (onPointOptions) { const connectedPoint = this.chart.get(onPointOptions.id); if (connectedPoint instanceof (highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default()) && defined(connectedPoint.plotX) && defined(connectedPoint.plotY)) { center[0] = connectedPoint.plotX; center[1] = connectedPoint.plotY; } const position = onPointOptions.position; if (position) { if (defined(position.x)) { center[0] = position.x; } if (defined(position.y)) { center[1] = position.y; } if (position.offsetX) { center[0] += position.offsetX; } if (position.offsetY) { center[1] += position.offsetY; } } } // Get and set the size const radius = this.radii && this.radii[this.index]; if (isNumber(radius)) { center[2] = radius * 2; } e.positions = center; } /** * @ignore */ seriesShowOrHide() { const allSeries = this.chart.series; // When toggling a series visibility, loop through all points this.points?.forEach((point) => { // Find all series that are on toggled points const series = find(allSeries, (series) => { const id = ((series.onPoint || {}).options || {}).id; if (!id) { return false; } return id === point.id; }); // And also toggle series that are on toggled points. Redraw is // not needed because it's fired later after showOrHide event series && series.setVisible(!series.visible, false); }); } /** * Calculate required radius (z data) before original translate. * * @ignore * @function Highcharts.Series#translate */ seriesTranslate() { if (this.onPoint) { this.onPoint.getRadii(); this.radii = this.onPoint.radii; } } /** * @ignore */ chartGetZData() { const zData = []; this.series.forEach((series) => { const onPointOpts = series.options.onPoint; zData.push(onPointOpts?.z ?? null); }); const dataTable = new Data_DataTableCore({ columns: { z: zData } }); this.series.forEach((series) => { // Save z values of all the series if (series.onPoint) { series.onPoint.dataTable = series.dataTable = dataTable; } }); } } SeriesOnPointComposition.Additions = Additions; })(SeriesOnPointComposition || (SeriesOnPointComposition = {})); /* * * * Default Export * * */ /* harmony default export */ const Series_SeriesOnPointComposition = (SeriesOnPointComposition); /* * * * API Options * * */ /** * Options for the _Series on point_ feature. Only `pie` and `sunburst` series * are supported at this moment. * * @sample {highcharts} highcharts/series-on-point/series-on-point * Series on point * @sample {highmaps} maps/demo/map-pies * Pies on a map * @requires modules/series-on-point * @since 10.2.0 * @type {object} * @apioption plotOptions.series.onPoint */ /** * Options for the connector in the _Series on point_ feature. * * In styled mode, the connector can be styled with the * `.highcharts-connector-seriesonpoint` class name. * * @requires modules/series-on-point * @since 10.2.0 * @type {Highcharts.SVGAttributes} * @apioption plotOptions.series.onPoint.connectorOptions */ /** * Color of the connector line. By default it's the series' color. * * @requires modules/series-on-point * @since 10.2.0 * @type {string} * @apioption plotOptions.series.onPoint.connectorOptions.stroke */ /** * A name for the dash style to use for the connector. * * @requires modules/series-on-point * @since 10.2.0 * @type {string} * @apioption plotOptions.series.onPoint.connectorOptions.dashstyle */ /** * Pixel width of the connector line. * * @default 1 * @requires modules/series-on-point * @type {number} * @since 10.2.0 * @apioption plotOptions.series.onPoint.connectorOptions.width */ /** * The `id` of the point that we connect the series to. Only points with a given * `plotX` and `plotY` values and map points are valid. * * @requires modules/series-on-point * @since 10.2.0 * @type {string} * @apioption plotOptions.series.onPoint.id */ /** * Options allowing to set a position and an offset of the series in the * _Series on point_ feature. * * @requires modules/series-on-point * @since 10.2.0 * @type {object} * @apioption plotOptions.series.onPoint.position */ /** * Series center offset from the original x position. If defined, the connector * line is drawn connecting original position with new position. * * @requires modules/series-on-point * @since 10.2.0 * @type {number} * @apioption plotOptions.series.onPoint.position.offsetX */ /** * Series center offset from the original y position. If defined, the connector * line is drawn from original position to a new position. * * @requires modules/series-on-point * @since 10.2.0 * @type {number} * @apioption plotOptions.series.onPoint.position.offsetY */ /** * X position of the series center. By default, the series is displayed on the * point that it is connected to. * * @requires modules/series-on-point * @since 10.2.0 * @type {number} * @apioption plotOptions.series.onPoint.position.x */ /** * Y position of the series center. By default, the series is displayed on the * point that it is connected to. * * @requires modules/series-on-point * @since 10.2.0 * @type {number} * @apioption plotOptions.series.onPoint.position.y */ ''; // Keeps doclets above in transpiled file ;// ./code/es-modules/masters/modules/series-on-point.src.js const G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()); Series_SeriesOnPointComposition.compose(G.Series, G.Chart); /* harmony default export */ const series_on_point_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default())); __webpack_exports__ = __webpack_exports__["default"]; /******/ return __webpack_exports__; /******/ })() ; });