* @param {(EventHandler | EventHandler[])} eventHandlers Define what to do when the event happens
* @param {number} [throttleTime=250] How often this event can happen
* @param {LimiterType} [limiter='throttle'] 'throttle' will ensure the event will wait throttleTime, before firing again. 'debounce' will wait throttletime without a repeat event to fire.
* Base class for behaviors. This defines how they will manage being throttled or debounced;
*
* @export
* @class GetDataAtMouseEvent
*/
exportdeclareabstractclassGistBehavior{
/**
* The id of this behavior
*
* @memberof GistBehavior
*/
readonlyid:number;
/**
* This will be set by the gistchart that this behavior is added to.
*
* @type {(number | undefined)}
* @memberof GistBehavior
*/
canvas:ChartCanvas;
/**
* Whether or not the behavior should prevent the default handler for the event(s)
*
* @type {boolean}
* @memberof GistBehavior
*/
preventDefault:boolean;
/**
* The list of event names that this behavior will fire on. While we accept any string, behavior implementations will specify what strings are actually valid.
*
* @type {string[]}
* @memberof GistBehavior
*/
readonlyeventNames:string[];
/**
* If and how this behavior fire rate should be limitted. If undefined, will be fired on every call.
*
* @type {limiterType}
* @memberof GistBehavior
*/
readonlylimiter:LimiterType;
/**
* how many milliseconds to for the limiter to wait
*
* @type {number}
* @memberof GistBehavior
*/
readonlythrottleTime:number;
/**
* List of what configs, and how they should handle the behavior when it activates
*
* @type {EventHandler[]}
* @memberof GistBehavior
*/
readonlyeventHandlers:EventHandler[];
/**
* GistCharts Only. We store all callbacks for each event that we need to call. We do not manage it ourselves, but its up to the chartcanvas to call, add or remove events as other it may have other behaviors.
* Adds a mouse event to a gist chart that will fire when the given event name fires and will call a function with data at the point given
*
* @export
* @class GetDataAtMouseEvent
*/
exportdeclareclassPanBehaviorextendsGistBehavior{
privatemousedown;
privatelastPosition;
privatemaskingElement;
privateuserSelectValue;
privatehasWarned;
/**
*Creates an instance of PanBehavior.
* @param {(SupportedPanEvent | SupportedPanEvent[])} [eventNames='mousedrag'] // mouse drag works by holding the mouse down and dragging, will stop when the mouse is released. Wheel works on scroll ( magic mouse compatible )
* @param {number} [throttleTime=15] // the delay on pans
* @param {number} [zoomConstant=1.15] controls how strong the zoom step is
* @param {ZoomMethod} [zoomMethod='multiplication'] multiplication zoom steps are based on the current zoom level resulting in a smoother movement. addition will jump by steps
* @param {number} [throttleTime=50] how long in milliseconds to throttle the event
* This is the base object to create when building a chart. All axis, and charts will be added and controlled via this class
*
* @export
* @class ChartCanvas
*/
exportdeclareclassChartCanvas{
/**
* Unique identifier of this chart chart.
*
* @type {number}
* @memberof BaseChart
*/
readonlyid:number;
/**
* The debug logger. To enable debugger, the isEnabled property must be set to true. It is also advised to set logPrefix to distinguish between different debuggers
*
* @memberof ChartCanvas
*/
readonlydebugLogger:DebugLogger;
/**
* This is the element that the chart will display in. When this is told to render, it will draw to size of this element.
*
* @type {HTMLElement}
* @memberof ChartCanvas
*/
privatecontextEle;
/**
* Gist Charts only! Tracks the clickable space that can be panned via double clicks
*Tells axis to re render. As the axis update with this call, you should probably call renderCharts after this. Returns true if axis will render. false if they wont ( invalid canvas size )
*
* @private
* @returns {boolean}
* @memberof ChartCanvas
*/
privaterenderAxis();
/**
* Render the given charts. This will happen without updating axis, so would be used when you know the axis is stable.
*
* @private
* @memberof ChartCanvas
*/
privaterenderCharts();
privatepollCharts();
privateshowCharts();
privatedrawGridLines();
privatecopyCharts();
privatestabilizeSizes();
/**
* Calls getAxisSizes on all axis and places them on a TBLR