highcharts
Version:
JavaScript charting framework
65 lines (64 loc) • 2.04 kB
JavaScript
/* *
*
* (c) 2010-2026 Highsoft AS
* Author: Torstein Hønsi
*
* A commercial license may be required depending on use.
* See www.highcharts.com/license
*
*
* */
;
import { addEvent, isFunction, objectEach, removeEvent } from '../Shared/Utilities.js';
/* *
*
* Class Namespace
*
* */
/** @internal */
var Foundation;
(function (Foundation) {
/* *
*
* Functions
*
* */
/**
* Register event options. If an event handler is set on the options, it
* should be subject to Chart.update, Axis.update and Series.update. This is
* contrary to general handlers that are set directly using addEvent either
* on the class or on the instance. #6538, #6943, #10861.
* @internal
*/
function registerEventOptions(component, options) {
// A lookup over those events that are added by _options_ (not
// programmatically). These are updated through .update()
component.eventOptions = component.eventOptions || {};
// Register event listeners
objectEach(options.events, function (event, eventType) {
// If event does not exist, or is changed by the .update()
// function
if (component.eventOptions[eventType] !== event) {
// Remove existing if set by option
if (component.eventOptions[eventType]) {
removeEvent(component, eventType, component.eventOptions[eventType]);
delete component.eventOptions[eventType];
}
if (isFunction(event)) {
component.eventOptions[eventType] = event;
addEvent(component, eventType, event, {
order: 0 // #14080 fire those events as firsts
});
}
}
});
}
Foundation.registerEventOptions = registerEventOptions;
})(Foundation || (Foundation = {}));
/* *
*
* Default Export
*
* */
/** @internal */
export default Foundation;