-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcore.adapters.d.ts
More file actions
93 lines (93 loc) · 3.43 KB
/
core.adapters.d.ts
File metadata and controls
93 lines (93 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/**
* @namespace Chart._adapters
* @since 2.8.0
* @private
*/
import type { AnyObject } from '../types/basic.js';
import type { ChartOptions } from '../types/index.js';
export type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
export interface DateAdapter<T extends AnyObject = AnyObject> {
readonly options: T;
/**
* Will called with chart options after adapter creation.
*/
init(this: DateAdapter<T>, chartOptions: ChartOptions): void;
/**
* Returns a map of time formats for the supported formatting units defined
* in Unit as well as 'datetime' representing a detailed date/time string.
*/
formats(this: DateAdapter<T>): Record<string, string>;
/**
* Parses the given `value` and return the associated timestamp.
* @param value - the value to parse (usually comes from the data)
* @param [format] - the expected data format
*/
parse(this: DateAdapter<T>, value: unknown, format?: TimeUnit): number | null;
/**
* Returns the formatted date in the specified `format` for a given `timestamp`.
* @param timestamp - the timestamp to format
* @param format - the date/time token
*/
format(this: DateAdapter<T>, timestamp: number, format: TimeUnit): string;
/**
* Adds the specified `amount` of `unit` to the given `timestamp`.
* @param timestamp - the input timestamp
* @param amount - the amount to add
* @param unit - the unit as string
*/
add(this: DateAdapter<T>, timestamp: number, amount: number, unit: TimeUnit): number;
/**
* Returns the number of `unit` between the given timestamps.
* @param a - the input timestamp (reference)
* @param b - the timestamp to subtract
* @param unit - the unit as string
*/
diff(this: DateAdapter<T>, a: number, b: number, unit: TimeUnit): number;
/**
* Returns start of `unit` for the given `timestamp`.
* @param timestamp - the input timestamp
* @param unit - the unit as string
* @param [weekday] - the ISO day of the week with 1 being Monday
* and 7 being Sunday (only needed if param *unit* is `isoWeek`).
*/
startOf(this: DateAdapter<T>, timestamp: number, unit: TimeUnit | 'isoWeek', weekday?: number): number;
/**
* Returns end of `unit` for the given `timestamp`.
* @param timestamp - the input timestamp
* @param unit - the unit as string
*/
endOf(this: DateAdapter<T>, timestamp: number, unit: TimeUnit | 'isoWeek'): number;
}
/**
* Date adapter (current used by the time scale)
* @namespace Chart._adapters._date
* @memberof Chart._adapters
* @private
*/
declare class DateAdapterBase implements DateAdapter {
/**
* Override default date adapter methods.
* Accepts type parameter to define options type.
* @example
* Chart._adapters._date.override<{myAdapterOption: string}>({
* init() {
* console.log(this.options.myAdapterOption);
* }
* })
*/
static override<T extends AnyObject = AnyObject>(members: Partial<Omit<DateAdapter<T>, 'options'>>): void;
readonly options: AnyObject;
constructor(options: AnyObject);
init(): void;
formats(): Record<string, string>;
parse(): number | null;
format(): string;
add(): number;
diff(): number;
startOf(): number;
endOf(): number;
}
declare const _default: {
_date: typeof DateAdapterBase;
};
export default _default;