Răsfoiți Sursa

formatter types for options

Adam Shaw 7 ani în urmă
părinte
comite
91f91a8055
2 a modificat fișierele cu 12 adăugiri și 9 ștergeri
  1. 4 2
      src/datelib/formatting.ts
  2. 8 7
      src/types/input-types.ts

+ 4 - 2
src/datelib/formatting.ts

@@ -4,7 +4,7 @@ import { CalendarSystem } from './calendar-system'
 import { Locale } from './locale'
 import { NativeFormatter } from './formatting-native'
 import { CmdFormatter } from './formatting-cmd'
-import { FuncFormatter } from './formatting-func'
+import { FuncFormatter, FuncFormatterFunc } from './formatting-func'
 
 export interface ZonedMarker {
   marker: DateMarker,
@@ -42,10 +42,12 @@ export interface DateFormatter {
   formatRange(start: ZonedMarker, end: ZonedMarker, context: DateFormattingContext)
 }
 
+export type FormatterInput = object | string | FuncFormatterFunc
+
 
 // Formatter Object Creation
 
-export function createFormatter(input): DateFormatter {
+export function createFormatter(input: FormatterInput): DateFormatter {
   if (typeof input === 'object') {
     return new NativeFormatter(input)
   }

+ 8 - 7
src/types/input-types.ts

@@ -7,6 +7,7 @@ import View from '../View'
 import EventSource from '../models/event-source/EventSource'
 import { Duration } from '../datelib/duration'
 import { DateInput } from '../datelib/env'
+import { FormatterInput } from '../datelib/formatting'
 
 export type DurationInput = Duration | object | string | number
 
@@ -161,15 +162,15 @@ export interface OptionsInputBase {
   allDaySlot?: boolean
   allDayText?: string
   slotDuration?: DurationInput
-  slotLabelFormat?: string
+  slotLabelFormat?: FormatterInput
   slotLabelInterval?: DurationInput
   snapDuration?: DurationInput
   scrollTime?: DurationInput
   minTime?: DurationInput
   maxTime?: DurationInput
   slotEventOverlap?: boolean
-  listDayFormat?: string | boolean
-  listDayAltFormat?: string | boolean
+  listDayFormat?: FormatterInput | boolean
+  listDayAltFormat?: FormatterInput | boolean
   noEventsMessage?: string
   defaultDate?: DateInput
   nowIndicator?: boolean
@@ -180,12 +181,12 @@ export interface OptionsInputBase {
   duration?: DurationInput
   dayCount?: number
   locale?: string
-  timeFormat?: string
+  timeFormat?: FormatterInput
   columnHeader?: boolean
-  columnHeaderFormat?: string
+  columnHeaderFormat?: FormatterInput
   columnHeaderText?: string | ((date: DateInput) => string)
   columnHeaderHtml?: string | ((date: DateInput) => string)
-  titleFormat?: string
+  titleFormat?: FormatterInput
   monthNames?: string[]
   monthNamesShort?: string[]
   dayNames?: string[]
@@ -194,7 +195,7 @@ export interface OptionsInputBase {
   displayEventTime?: boolean
   displayEventEnd?: boolean
   eventLimitText?: string | ((eventCnt: number) => string)
-  dayPopoverFormat?: string
+  dayPopoverFormat?: FormatterInput
   navLinks?: boolean
   navLinkDayClick?: string | ((date: Date, jsEvent: Event) => void)
   navLinkWeekClick?: string | ((weekStart: any, jsEvent: Event) => void)