From 3676f9340d29a97842fa6f90779eda697ca0b5d0 Mon Sep 17 00:00:00 2001 From: James Birtles Date: Tue, 20 Dec 2016 14:29:27 +0000 Subject: [PATCH] Add flatpickr definitions (#13083) --- flatpickr/flatpickr-tests.ts | 15 ++++++++ flatpickr/index.d.ts | 68 ++++++++++++++++++++++++++++++++++++ flatpickr/tsconfig.json | 19 ++++++++++ flatpickr/tslint.json | 1 + 4 files changed, 103 insertions(+) create mode 100644 flatpickr/flatpickr-tests.ts create mode 100644 flatpickr/index.d.ts create mode 100644 flatpickr/tsconfig.json create mode 100644 flatpickr/tslint.json diff --git a/flatpickr/flatpickr-tests.ts b/flatpickr/flatpickr-tests.ts new file mode 100644 index 0000000000..9f0211c79d --- /dev/null +++ b/flatpickr/flatpickr-tests.ts @@ -0,0 +1,15 @@ +import * as Flatpickr from 'flatpickr'; + +const picker1 = new Flatpickr('input'); + +const input = document.querySelector('input'); +if (input != null) { + const picker2 = new Flatpickr(input, { + mode: 'range', + onChange: dates => null + }); + picker2.setDate(['2016-11-15T00:00:00.000Z', new Date()]); +} + +picker1.destroy(); + diff --git a/flatpickr/index.d.ts b/flatpickr/index.d.ts new file mode 100644 index 0000000000..fc3de85a53 --- /dev/null +++ b/flatpickr/index.d.ts @@ -0,0 +1,68 @@ +// Type definitions for flatpickr 2.2 +// Project: https://github.com/chmln/flatpickr +// Definitions by: James Birtles +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare class Flatpickr { + constructor(element: string | Element, options?: Flatpickr.Options); + + changeMonth(month: number, isOffset: boolean): void; + clear(): void; + close(): void; + destroy(): void; + formatDate(format: string, date: Date): string; + jumpToDate(date?: Flatpickr.DateString): void; + open(): void; + parseDate(date: string): Date; + redraw(): void; + set(option: string, value: any): void; + setDate(date: Flatpickr.DateString | Flatpickr.DateString[]): void; + toggle(): void; +} + +declare namespace Flatpickr { + interface Options { + altFormat?: string; + altInput?: boolean; + altInputClass?: string; + allowInput?: boolean; + clickOpens?: boolean; + dateFormat?: string | null; + defaultDate?: DateString | DateString[]; + disable?: DateRange[]; + enable?: DateRange[]; + enableTime?: boolean; + enableSeconds?: boolean; + hourIncrement?: number; + inline?: boolean; + maxDate?: DateString; + minDate?: DateString; + minuteIncrement?: number; + mode?: Mode; + nextArrow?: string; + noCalendar?: boolean; + onChange?: EventCallback | EventCallback[]; + onClose?: EventCallback | EventCallback[]; + onOpen?: EventCallback | EventCallback[]; + onReady?: EventCallback | EventCallback[]; + onMonthChange?: EventCallback | EventCallback[]; + onYearChange?: EventCallback | EventCallback[]; + onValueUpdate?: EventCallback | EventCallback[]; + onDayCreate?: EventCallback | EventCallback[]; + parseDate?: (date: string) => Date; + prevArrow?: string; + shorthandCurrentMonth?: boolean; + static?: boolean; + time_24hr?: boolean; + utc?: boolean; + weekNumbers?: boolean; + wrap?: boolean; + } + + type DateString = Date | string; + type DateRange = DateString | { from: DateString, to: DateString } | ((date: Date) => boolean); + type Mode = 'single' | 'multiple' | 'range'; + type EventCallback = (selectedDates: Date[], dateStr: string, instance: Flatpickr, elem: HTMLElement) => void; +} + +export = Flatpickr; diff --git a/flatpickr/tsconfig.json b/flatpickr/tsconfig.json new file mode 100644 index 0000000000..cc9b182a98 --- /dev/null +++ b/flatpickr/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "flatpickr-tests.ts" + ] +} diff --git a/flatpickr/tslint.json b/flatpickr/tslint.json new file mode 100644 index 0000000000..377cc837d4 --- /dev/null +++ b/flatpickr/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" }