[6a3a178] | 1 | /**
|
---|
| 2 | * @license
|
---|
| 3 | * Copyright Google LLC All Rights Reserved.
|
---|
| 4 | *
|
---|
| 5 | * Use of this source code is governed by an MIT-style license that can be
|
---|
| 6 | * found in the LICENSE file at https://angular.io/license
|
---|
| 7 | */
|
---|
| 8 | import { InjectionToken } from '@angular/core';
|
---|
| 9 | import { Observable, Subject } from 'rxjs';
|
---|
| 10 | /** InjectionToken for datepicker that can be used to override default locale code. */
|
---|
| 11 | export declare const MAT_DATE_LOCALE: InjectionToken<string>;
|
---|
| 12 | /** @docs-private */
|
---|
| 13 | export declare function MAT_DATE_LOCALE_FACTORY(): string;
|
---|
| 14 | /** Adapts type `D` to be usable as a date by cdk-based components that work with dates. */
|
---|
| 15 | export declare abstract class DateAdapter<D> {
|
---|
| 16 | /** The locale to use for all dates. */
|
---|
| 17 | protected locale: any;
|
---|
| 18 | protected readonly _localeChanges: Subject<void>;
|
---|
| 19 | /** A stream that emits when the locale changes. */
|
---|
| 20 | readonly localeChanges: Observable<void>;
|
---|
| 21 | /**
|
---|
| 22 | * Gets the year component of the given date.
|
---|
| 23 | * @param date The date to extract the year from.
|
---|
| 24 | * @returns The year component.
|
---|
| 25 | */
|
---|
| 26 | abstract getYear(date: D): number;
|
---|
| 27 | /**
|
---|
| 28 | * Gets the month component of the given date.
|
---|
| 29 | * @param date The date to extract the month from.
|
---|
| 30 | * @returns The month component (0-indexed, 0 = January).
|
---|
| 31 | */
|
---|
| 32 | abstract getMonth(date: D): number;
|
---|
| 33 | /**
|
---|
| 34 | * Gets the date of the month component of the given date.
|
---|
| 35 | * @param date The date to extract the date of the month from.
|
---|
| 36 | * @returns The month component (1-indexed, 1 = first of month).
|
---|
| 37 | */
|
---|
| 38 | abstract getDate(date: D): number;
|
---|
| 39 | /**
|
---|
| 40 | * Gets the day of the week component of the given date.
|
---|
| 41 | * @param date The date to extract the day of the week from.
|
---|
| 42 | * @returns The month component (0-indexed, 0 = Sunday).
|
---|
| 43 | */
|
---|
| 44 | abstract getDayOfWeek(date: D): number;
|
---|
| 45 | /**
|
---|
| 46 | * Gets a list of names for the months.
|
---|
| 47 | * @param style The naming style (e.g. long = 'January', short = 'Jan', narrow = 'J').
|
---|
| 48 | * @returns An ordered list of all month names, starting with January.
|
---|
| 49 | */
|
---|
| 50 | abstract getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
|
---|
| 51 | /**
|
---|
| 52 | * Gets a list of names for the dates of the month.
|
---|
| 53 | * @returns An ordered list of all date of the month names, starting with '1'.
|
---|
| 54 | */
|
---|
| 55 | abstract getDateNames(): string[];
|
---|
| 56 | /**
|
---|
| 57 | * Gets a list of names for the days of the week.
|
---|
| 58 | * @param style The naming style (e.g. long = 'Sunday', short = 'Sun', narrow = 'S').
|
---|
| 59 | * @returns An ordered list of all weekday names, starting with Sunday.
|
---|
| 60 | */
|
---|
| 61 | abstract getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
|
---|
| 62 | /**
|
---|
| 63 | * Gets the name for the year of the given date.
|
---|
| 64 | * @param date The date to get the year name for.
|
---|
| 65 | * @returns The name of the given year (e.g. '2017').
|
---|
| 66 | */
|
---|
| 67 | abstract getYearName(date: D): string;
|
---|
| 68 | /**
|
---|
| 69 | * Gets the first day of the week.
|
---|
| 70 | * @returns The first day of the week (0-indexed, 0 = Sunday).
|
---|
| 71 | */
|
---|
| 72 | abstract getFirstDayOfWeek(): number;
|
---|
| 73 | /**
|
---|
| 74 | * Gets the number of days in the month of the given date.
|
---|
| 75 | * @param date The date whose month should be checked.
|
---|
| 76 | * @returns The number of days in the month of the given date.
|
---|
| 77 | */
|
---|
| 78 | abstract getNumDaysInMonth(date: D): number;
|
---|
| 79 | /**
|
---|
| 80 | * Clones the given date.
|
---|
| 81 | * @param date The date to clone
|
---|
| 82 | * @returns A new date equal to the given date.
|
---|
| 83 | */
|
---|
| 84 | abstract clone(date: D): D;
|
---|
| 85 | /**
|
---|
| 86 | * Creates a date with the given year, month, and date. Does not allow over/under-flow of the
|
---|
| 87 | * month and date.
|
---|
| 88 | * @param year The full year of the date. (e.g. 89 means the year 89, not the year 1989).
|
---|
| 89 | * @param month The month of the date (0-indexed, 0 = January). Must be an integer 0 - 11.
|
---|
| 90 | * @param date The date of month of the date. Must be an integer 1 - length of the given month.
|
---|
| 91 | * @returns The new date, or null if invalid.
|
---|
| 92 | */
|
---|
| 93 | abstract createDate(year: number, month: number, date: number): D;
|
---|
| 94 | /**
|
---|
| 95 | * Gets today's date.
|
---|
| 96 | * @returns Today's date.
|
---|
| 97 | */
|
---|
| 98 | abstract today(): D;
|
---|
| 99 | /**
|
---|
| 100 | * Parses a date from a user-provided value.
|
---|
| 101 | * @param value The value to parse.
|
---|
| 102 | * @param parseFormat The expected format of the value being parsed
|
---|
| 103 | * (type is implementation-dependent).
|
---|
| 104 | * @returns The parsed date.
|
---|
| 105 | */
|
---|
| 106 | abstract parse(value: any, parseFormat: any): D | null;
|
---|
| 107 | /**
|
---|
| 108 | * Formats a date as a string according to the given format.
|
---|
| 109 | * @param date The value to format.
|
---|
| 110 | * @param displayFormat The format to use to display the date as a string.
|
---|
| 111 | * @returns The formatted date string.
|
---|
| 112 | */
|
---|
| 113 | abstract format(date: D, displayFormat: any): string;
|
---|
| 114 | /**
|
---|
| 115 | * Adds the given number of years to the date. Years are counted as if flipping 12 pages on the
|
---|
| 116 | * calendar for each year and then finding the closest date in the new month. For example when
|
---|
| 117 | * adding 1 year to Feb 29, 2016, the resulting date will be Feb 28, 2017.
|
---|
| 118 | * @param date The date to add years to.
|
---|
| 119 | * @param years The number of years to add (may be negative).
|
---|
| 120 | * @returns A new date equal to the given one with the specified number of years added.
|
---|
| 121 | */
|
---|
| 122 | abstract addCalendarYears(date: D, years: number): D;
|
---|
| 123 | /**
|
---|
| 124 | * Adds the given number of months to the date. Months are counted as if flipping a page on the
|
---|
| 125 | * calendar for each month and then finding the closest date in the new month. For example when
|
---|
| 126 | * adding 1 month to Jan 31, 2017, the resulting date will be Feb 28, 2017.
|
---|
| 127 | * @param date The date to add months to.
|
---|
| 128 | * @param months The number of months to add (may be negative).
|
---|
| 129 | * @returns A new date equal to the given one with the specified number of months added.
|
---|
| 130 | */
|
---|
| 131 | abstract addCalendarMonths(date: D, months: number): D;
|
---|
| 132 | /**
|
---|
| 133 | * Adds the given number of days to the date. Days are counted as if moving one cell on the
|
---|
| 134 | * calendar for each day.
|
---|
| 135 | * @param date The date to add days to.
|
---|
| 136 | * @param days The number of days to add (may be negative).
|
---|
| 137 | * @returns A new date equal to the given one with the specified number of days added.
|
---|
| 138 | */
|
---|
| 139 | abstract addCalendarDays(date: D, days: number): D;
|
---|
| 140 | /**
|
---|
| 141 | * Gets the RFC 3339 compatible string (https://tools.ietf.org/html/rfc3339) for the given date.
|
---|
| 142 | * This method is used to generate date strings that are compatible with native HTML attributes
|
---|
| 143 | * such as the `min` or `max` attribute of an `<input>`.
|
---|
| 144 | * @param date The date to get the ISO date string for.
|
---|
| 145 | * @returns The ISO date string date string.
|
---|
| 146 | */
|
---|
| 147 | abstract toIso8601(date: D): string;
|
---|
| 148 | /**
|
---|
| 149 | * Checks whether the given object is considered a date instance by this DateAdapter.
|
---|
| 150 | * @param obj The object to check
|
---|
| 151 | * @returns Whether the object is a date instance.
|
---|
| 152 | */
|
---|
| 153 | abstract isDateInstance(obj: any): boolean;
|
---|
| 154 | /**
|
---|
| 155 | * Checks whether the given date is valid.
|
---|
| 156 | * @param date The date to check.
|
---|
| 157 | * @returns Whether the date is valid.
|
---|
| 158 | */
|
---|
| 159 | abstract isValid(date: D): boolean;
|
---|
| 160 | /**
|
---|
| 161 | * Gets date instance that is not valid.
|
---|
| 162 | * @returns An invalid date.
|
---|
| 163 | */
|
---|
| 164 | abstract invalid(): D;
|
---|
| 165 | /**
|
---|
| 166 | * Given a potential date object, returns that same date object if it is
|
---|
| 167 | * a valid date, or `null` if it's not a valid date.
|
---|
| 168 | * @param obj The object to check.
|
---|
| 169 | * @returns A date or `null`.
|
---|
| 170 | */
|
---|
| 171 | getValidDateOrNull(obj: unknown): D | null;
|
---|
| 172 | /**
|
---|
| 173 | * Attempts to deserialize a value to a valid date object. This is different from parsing in that
|
---|
| 174 | * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
|
---|
| 175 | * string). The default implementation does not allow any deserialization, it simply checks that
|
---|
| 176 | * the given value is already a valid date object or null. The `<mat-datepicker>` will call this
|
---|
| 177 | * method on all of its `@Input()` properties that accept dates. It is therefore possible to
|
---|
| 178 | * support passing values from your backend directly to these properties by overriding this method
|
---|
| 179 | * to also deserialize the format used by your backend.
|
---|
| 180 | * @param value The value to be deserialized into a date object.
|
---|
| 181 | * @returns The deserialized date object, either a valid date, null if the value can be
|
---|
| 182 | * deserialized into a null date (e.g. the empty string), or an invalid date.
|
---|
| 183 | */
|
---|
| 184 | deserialize(value: any): D | null;
|
---|
| 185 | /**
|
---|
| 186 | * Sets the locale used for all dates.
|
---|
| 187 | * @param locale The new locale.
|
---|
| 188 | */
|
---|
| 189 | setLocale(locale: any): void;
|
---|
| 190 | /**
|
---|
| 191 | * Compares two dates.
|
---|
| 192 | * @param first The first date to compare.
|
---|
| 193 | * @param second The second date to compare.
|
---|
| 194 | * @returns 0 if the dates are equal, a number less than 0 if the first date is earlier,
|
---|
| 195 | * a number greater than 0 if the first date is later.
|
---|
| 196 | */
|
---|
| 197 | compareDate(first: D, second: D): number;
|
---|
| 198 | /**
|
---|
| 199 | * Checks if two dates are equal.
|
---|
| 200 | * @param first The first date to check.
|
---|
| 201 | * @param second The second date to check.
|
---|
| 202 | * @returns Whether the two dates are equal.
|
---|
| 203 | * Null dates are considered equal to other null dates.
|
---|
| 204 | */
|
---|
| 205 | sameDate(first: D | null, second: D | null): boolean;
|
---|
| 206 | /**
|
---|
| 207 | * Clamp the given date between min and max dates.
|
---|
| 208 | * @param date The date to clamp.
|
---|
| 209 | * @param min The minimum value to allow. If null or omitted no min is enforced.
|
---|
| 210 | * @param max The maximum value to allow. If null or omitted no max is enforced.
|
---|
| 211 | * @returns `min` if `date` is less than `min`, `max` if date is greater than `max`,
|
---|
| 212 | * otherwise `date`.
|
---|
| 213 | */
|
---|
| 214 | clampDate(date: D, min?: D | null, max?: D | null): D;
|
---|
| 215 | }
|
---|