valor-software/ng2-bootstrap

View on GitHub
src/chronos/types.ts

Summary

Maintainability
A
0 mins
Test Coverage
// tslint:disable:max-line-length
import { Locale } from './locale/locale.class';
import { DateParsingConfig } from './create/parsing.types';

export type UnitOfTime =
  | 'year'
  | 'month'
  // day of week
  | 'day'
  // day of month
  | 'date'
  | 'dayOfYear'
  | 'hours'
  | 'minutes'
  | 'seconds'
  | 'milliseconds'
  | 'quarter'
  | 'week'
  | 'isoWeek'
  | 'weekYear'
  | 'isoWeekYear'
  | 'weekday'
  | 'isoWeekday';

export interface TimeUnit {
  year?: number;
  month?: number;
  day?: number;
  hour?: number;
  minute?: number;
  seconds?: number;
  milliseconds?: number;
}

export interface DateFormatterOptions {
  format: string;
  locale: Locale;
  isUTC: boolean;
  offset: number;
}

// export type DateFormatterFn = (date: Date, format?: string, locale?: Locale) => string;
export type DateFormatterFn = (date: Date, opts: DateFormatterOptions) => string;

// todo: should replace TimeUnit
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
export interface DateObject {
  year?: number;
  /* One digit */
  month?: number;
  /* Day of the month */
  day?: number;
  hours?: number;
  minutes?: number;
  seconds?: number;
  milliseconds?: number;
  // may be?
  week?: number;
  quarter?: number;
}

export type DateArray = number[];

export interface WeekParsing {
  [key: string]: number;

  [key: number]: number;
}

export type DateParseTokenFn = (input: string, array: DateArray | WeekParsing, config: DateParsingConfig, token?: string) => DateParsingConfig;