
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import { DataItem } from "../../../core/render/Component";
import type { AxisRenderer } from "./AxisRenderer";
import type { XYSeries, IXYSeriesDataItem } from "../series/XYSeries";
import { ValueAxis, IValueAxisSettings, IValueAxisPrivate, IValueAxisDataItem, IMinMaxStep, IValueAxisEvents } from "./ValueAxis";
import type { ITimeInterval } from "../../../core/util/Time";
import type { TimeUnit } from "../../../core/util/Time";
export interface IDateAxisSettings<R extends AxisRenderer> extends IValueAxisSettings<R> {
/**
* Indicates granularity of data.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Data_granularity} for more info
*/
baseInterval: ITimeInterval;
/**
* Relative location of where axis cell starts: 0 - beginning, 1 - end.
*
* IMPORTANT: `startLocation` is not supported by [[GaplessDateAxis]].
*
* @default 0
*/
startLocation?: number;
/**
* Relative location of where axis cell ends: 0 - beginning, 1 - end.
*
* IMPORTANT: `endLocation` is not supported by [[GaplessDateAxis]].
*
* @default 1
*/
endLocation?: number;
/**
* Should axis group data items togeter dynamically?
*
* @default false
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info
*/
groupData?: boolean;
/**
* Maximum number of data items in the view before data grouping kicks in.
*
* @default 500
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info
*/
groupCount?: number;
/**
* Force data item grouping to specific interval. This interval must be within groupIntervals array for this to work.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info
*/
groupInterval?: ITimeInterval;
/**
* A list of intervals the axis is allowed to group data items into.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Dynamic_data_item_grouping} for more info
*/
groupIntervals?: Array<ITimeInterval>;
/**
* A list of intervals the axis is allowed to show grid/labels on.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Grid_granularity} for more info
*/
gridIntervals?: Array<ITimeInterval>;
/**
* Display "period change" labels using different format.
*
* If set to `true`, will use `periodChangeDateFormats` instead
* of `dateFormats` for such labels, e.g. for month start.
*
* @default true
*/
markUnitChange?: boolean;
/**
* Date formats used for intermediate labels.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info
*/
dateFormats?: {
[index: string]: string | Intl.DateTimeFormatOptions;
};
/**
* Date formats used for minor grid labels.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Minor_grid_formats} for more info
* @since 5.6.0
*/
minorDateFormats?: {
[index: string]: string | Intl.DateTimeFormatOptions;
};
/**
* Date formats used for "period change" labels.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Date_formats} for more info
*/
periodChangeDateFormats?: {
[index: string]: string | Intl.DateTimeFormatOptions;
};
/**
* A date format to use for axis tooltip.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info
*/
tooltipDateFormat?: string | Intl.DateTimeFormatOptions;
/**
* Time unit-specific formats to use for axis tooltip.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info
* @since 5.1.4
*/
tooltipDateFormats?: {
[index: string]: string | Intl.DateTimeFormatOptions;
};
/**
* A value which indicates relative position within axis cell to get timestamp
* for the tooltip from.
*
* Values are from `-1` to `1`.
*
* If not set, it will use `tooltipLocation` value, if `tooltipLocation`` is
* not set, it will use -0.5.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/#Axis_tooltip} for more info
* @since 5.1.4
*/
tooltipIntervalOffset?: number;
}
export interface IDateAxisDataItem extends IValueAxisDataItem {
}
export interface IDateAxisPrivate extends IValueAxisPrivate {
/**
* Current group interval.
*/
groupInterval?: ITimeInterval;
/**
* Current base interval.
*/
baseInterval: ITimeInterval;
/**
* Current grid interval.
*/
gridInterval: ITimeInterval;
}
export interface IDateAxisEvents extends IValueAxisEvents {
/**
* Kicks in when data grouping is on, and current group interval changes, e.g. via zooming the chart.
*
* @since 5.2.43
*/
groupintervalchanged: {};
}
/**
* Creates a date axis.
*
* @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/axes/date-axis/} for more info
* @important
*/
export declare class DateAxis<R extends AxisRenderer> extends ValueAxis<R> {
static className: string;
static classNames: Array<string>;
_settings: IDateAxisSettings<R>;
_privateSettings: IDateAxisPrivate;
_dataItemSettings: IDateAxisDataItem;
_events: IDateAxisEvents;
protected _dataGrouped: boolean;
protected _seriesDataGrouped: boolean;
protected _groupingCalculated: boolean;
protected _intervalDuration: number;
protected _baseDuration: number;
protected _intervalMax: {
[index: string]: number;
};
protected _intervalMin: {
[index: string]: number;
};
_afterNew(): void;
protected _setBaseInterval(interval: ITimeInterval): void;
protected _fixZoomFactor(): void;
protected _groupData(): void;
_groupSeriesData(series: XYSeries): void;
_clearDirty(): void;
/**
* Returns a time interval axis would group data to for a specified duration.
*
* @since 5.2.1
*/
getGroupInterval(duration: number): ITimeInterval;
/**
* Return `max` of a specified time interval.
*
* Will work only if the axis was grouped to this interval at least once.
*
* @since 5.2.1
* @param interval Interval
* @return Max
*/
getIntervalMax(interval: ITimeInterval): number;
/**
* Return `min` of a specified time interval.
*
* Will work only if the axis was grouped to this interval at least once.
*
* @since 5.2.1
* @param interval Interval
* @return Min
*/
getIntervalMin(interval: ITimeInterval): number;
protected _handleRangeChange(): void;
protected _adjustMinMax(min: number, max: number, gridCount: number, _strictMode?: boolean): IMinMaxStep;
/**
* @ignore
*/
intervalDuration(): number;
protected _saveMinMax(min: number, max: number): void;
protected _getM(timeUnit: TimeUnit): 1.05 | 1.01;
protected _getMinorInterval(interval: ITimeInterval): ITimeInterval | undefined;
protected _prepareAxisItems(): void;
protected _updateFinals(start: number, end: number): void;
protected _getDelta(): void;
protected _fixMin(min: number): number;
protected _fixMax(max: number): number;
protected _updateDates(_date: number, _series: XYSeries): void;
/**
* Returns a duration of currently active `baseInterval` in milliseconds.
*
* @return Duration
*/
baseDuration(): number;
/**
* Returns a duration of user-defined `baseInterval` in milliseconds.
*
* @return Duration
*/
baseMainDuration(): number;
/**
* @ignore
*/
processSeriesDataItem(dataItem: DataItem<IXYSeriesDataItem>, fields: Array<string>): void;
/**
* @ignore
*/
getDataItemPositionX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number;
/**
* @ignore
*/
getDataItemCoordinateX(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number;
/**
* @ignore
*/
getDataItemPositionY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number;
/**
* @ignore
*/
getDataItemCoordinateY(dataItem: DataItem<IXYSeriesDataItem>, field: string, cellLocation: number, axisLocation: number): number;
/**
* @ignore
*/
roundAxisPosition(position: number, location: number): number;
/**
* Returns text to be used in an axis tooltip for specific relative position.
*
* NOTE: Unless `adjustPosition` (2nd parameter) is set to `false`, the method
* will adjust position by `tooltipIntervalOffset`.
*
* @param position Position
* @param adjustPosition Adjust position
* @return Tooltip text
*/
getTooltipText(position: number, adjustPosition?: boolean): string | undefined;
/**
* Returns a data item from series that is closest to the `position`.
*
* @param series Series
* @param position Relative position
* @return Data item
*/
getSeriesItem(series: XYSeries, position: number, location?: number, snap?: boolean): DataItem<IXYSeriesDataItem> | undefined;
/**
* @ignore
*/
shouldGap(dataItem: DataItem<IXYSeriesDataItem>, nextItem: DataItem<IXYSeriesDataItem>, autoGapCount: number, fieldName: string): boolean;
/**
* Zooms the axis to specific `start` and `end` dates.
*
* Optional `duration` specifies duration of zoom animation in milliseconds.
*
* @param start Start Date
* @param end End Date
* @param duration Duration in milliseconds
*/
zoomToDates(start: Date, end: Date, duration?: number): void;
/**
* Returns a `Date` object corresponding to specific position within plot
* area.
*
* @param position Pposition
* @return Date
*/
positionToDate(position: number): Date;
/**
* Returns a relative position within plot area that corresponds to specific
* date.
*
* @param date Date
* @return Position
*/
dateToPosition(date: Date): number;
/**
* Returns relative position between two grid lines of the axis.
*
* @since 5.2.30
* @return Position
*/
getCellWidthPosition(): number;
}
//# sourceMappingURL=DateAxis.d.ts.map