UNPKG

echarts

Version:

Apache ECharts is a powerful, interactive charting and data visualization library for browser

147 lines (146 loc) 4.58 kB
import BoundingRect from 'zrender/lib/core/BoundingRect.js'; import CalendarModel from './CalendarModel.js'; import GlobalModel from '../../model/Global.js'; import ExtensionAPI from '../../core/ExtensionAPI.js'; import { LayoutOrient, ScaleDataValue, OptionDataValueDate, CoordinateSystemDataLayout } from '../../util/types.js'; import { ParsedModelFinder } from '../../util/model.js'; import { CoordinateSystem, CoordinateSystemMaster } from '../CoordinateSystem.js'; export interface CalendarParsedDateRangeInfo { range: [string, string]; start: CalendarParsedDateInfo; end: CalendarParsedDateInfo; allDay: number; weeks: number; nthWeek: number; fweek: number; lweek: number; } export interface CalendarParsedDateInfo { /** * local full year, eg., '1940' */ y: string; /** * local month, from '01' ot '12', */ m: string; /** * local date, from '01' to '31' (if exists), */ d: string; /** * It is not date.getDay(). It is the location of the cell in a week, from 0 to 6, */ day: number; /** * Timestamp */ time: number; /** * yyyy-MM-dd */ formatedDate: string; /** * The original date object */ date: Date; } interface CalendarCellRect { center: number[]; tl: number[]; tr: number[]; br: number[]; bl: number[]; } declare class Calendar implements CoordinateSystem, CoordinateSystemMaster { static readonly dimensions: string[]; static getDimensionsInfo(): (string | { name: string; type: "time"; })[]; readonly type = "calendar"; readonly dimensions: string[]; private _model; private _rect; private _sw; private _sh; private _orient; private _firstDayOfWeek; private _rangeInfo; private _lineWidth; constructor(calendarModel: CalendarModel, ecModel: GlobalModel, api: ExtensionAPI); getDimensionsInfo: typeof Calendar.getDimensionsInfo; getRangeInfo(): CalendarParsedDateRangeInfo; getModel(): CalendarModel; getRect(): BoundingRect; getCellWidth(): number; getCellHeight(): number; getOrient(): LayoutOrient; /** * getFirstDayOfWeek * * @example * 0 : start at Sunday * 1 : start at Monday * * @return {number} */ getFirstDayOfWeek(): number; /** * get date info * } */ getDateInfo(date: OptionDataValueDate): CalendarParsedDateInfo; getNextNDay(date: OptionDataValueDate, n: number): CalendarParsedDateInfo; private _update; /** * Convert a time data(time, value) item to (x, y) point. */ dataToPoint(data: OptionDataValueDate | OptionDataValueDate[], clamp?: boolean, out?: number[]): number[]; /** * Convert a (x, y) point to time data */ pointToData(point: number[]): number; dataToLayout(data: OptionDataValueDate | OptionDataValueDate[], clamp?: boolean, out?: CoordinateSystemDataLayout): CoordinateSystemDataLayout; /** * Convert a time date item to (x, y) four point. */ dataToCalendarLayout(data: OptionDataValueDate | OptionDataValueDate[], clamp?: boolean): CalendarCellRect; /** * Convert a (x, y) point to time date * * @param {Array} point point * @return {Object} date */ pointToDate(point: number[]): CalendarParsedDateInfo; convertToPixel(ecModel: GlobalModel, finder: ParsedModelFinder, value: ScaleDataValue | ScaleDataValue[]): number[]; convertToLayout(ecModel: GlobalModel, finder: ParsedModelFinder, value: ScaleDataValue | ScaleDataValue[]): CoordinateSystemDataLayout; convertFromPixel(ecModel: GlobalModel, finder: ParsedModelFinder, pixel: number[]): number; containPoint(point: number[]): boolean; /** * initRange * Normalize to an [start, end] array */ private _initRangeOption; /** * range info * * @private * @param {Array} range range ['2017-01-01', '2017-07-08'] * If range[0] > range[1], they will not be reversed. * @return {Object} obj */ _getRangeInfo(range: OptionDataValueDate[]): CalendarParsedDateRangeInfo; /** * get date by nthWeeks and week day in range * * @private * @param {number} nthWeek the week * @param {number} day the week day * @param {Array} range [d1, d2] * @return {Object} */ private _getDateByWeeksAndDay; static create(ecModel: GlobalModel, api: ExtensionAPI): Calendar[]; } export default Calendar;