%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/11584/cwd/html/ppaobm/backend/web/assets/16c36a2e/es-modules/mixins/ |
Upload File : |
'use strict'; import H from '../parts/Globals.js'; import '../parts/Series.js'; var Series = H.Series, addEvent = H.addEvent, noop = H.noop; /* ************************************************************************** * * * DERIVED SERIES MIXIN * * ************************************************************************** */ /** * Provides methods for auto setting/updating series data based on the based * series data. * * @private * @mixin derivedSeriesMixin */ var derivedSeriesMixin = { hasDerivedData: true, /** * Initialise series * * @private * @function derivedSeriesMixin.init */ init: function () { Series.prototype.init.apply(this, arguments); this.initialised = false; this.baseSeries = null; this.eventRemovers = []; this.addEvents(); }, /** * Method to be implemented - inside the method the series has already * access to the base series via m `this.baseSeries` and the bases data is * initialised. It should return data in the format accepted by * `Series.setData()` method * * @private * @function derivedSeriesMixin.setDerivedData * * @return {Array<*>} * An array of data */ setDerivedData: noop, /** * Sets base series for the series * * @private * @function derivedSeriesMixin.setBaseSeries */ setBaseSeries: function () { var chart = this.chart, baseSeriesOptions = this.options.baseSeries, baseSeries = ( H.defined(baseSeriesOptions) && ( chart.series[baseSeriesOptions] || chart.get(baseSeriesOptions) ) ); this.baseSeries = baseSeries || null; }, /** * Adds events for the series * * @private * @function derivedSeriesMixin.addEvents */ addEvents: function () { var derivedSeries = this, chartSeriesLinked; chartSeriesLinked = addEvent( this.chart, 'afterLinkSeries', function () { derivedSeries.setBaseSeries(); if (derivedSeries.baseSeries && !derivedSeries.initialised) { derivedSeries.setDerivedData(); derivedSeries.addBaseSeriesEvents(); derivedSeries.initialised = true; } } ); this.eventRemovers.push( chartSeriesLinked ); }, /** * Adds events to the base series - it required for recalculating the data * in the series if the base series is updated / removed / etc. * * @private * @function derivedSeriesMixin.addBaseSeriesEvents */ addBaseSeriesEvents: function () { var derivedSeries = this, updatedDataRemover, destroyRemover; updatedDataRemover = addEvent( derivedSeries.baseSeries, 'updatedData', function () { derivedSeries.setDerivedData(); } ); destroyRemover = addEvent( derivedSeries.baseSeries, 'destroy', function () { derivedSeries.baseSeries = null; derivedSeries.initialised = false; } ); derivedSeries.eventRemovers.push( updatedDataRemover, destroyRemover ); }, /** * Destroys the series * * @private * @function derivedSeriesMixin.destroy */ destroy: function () { this.eventRemovers.forEach(function (remover) { remover(); }); Series.prototype.destroy.apply(this, arguments); } }; export default derivedSeriesMixin;