diff --git a/src/plugins/datepicker.ts b/src/plugins/datepicker.ts index a0d1d24d..3758db96 100644 --- a/src/plugins/datepicker.ts +++ b/src/plugins/datepicker.ts @@ -1,26 +1,95 @@ import {Plugin, Cordova} from './plugin'; +export interface datePickerOptions { + /** + * Platforms: iOS, Android, Windows + * The mode of the date picker + * Values: date | time | datetime + */ + mode: string, + + /** + * Platforms: iOS, Android, Windows + * Selected date + */ + date: Date, + + /** + * Platforms: iOS, Android, Windows + * Minimum date + * Type: Date | empty String + * Default: empty String + */ + minDate: Date, + + /** + * Platforms: iOS, Android, Windows + * Maximum date + * Type: Date | empty String + * Default: empty String + */ + maxDate: Date, + + /** + * Platforms: Android + * Label for the dialog title. If empty, uses android default (Set date/Set time). + * Type: String + * Default: empty String + */ + titleText: string, + + /** + * Platforms: Android + * Label of BUTTON_POSITIVE (done button) on Android + */ + okText: string, + + // TODO complete documentation here, and copy params & docs to main plugin docs + cancelText: string, + todayText: string, + nowText: string, + is24Hour: boolean, + androidTheme: number, + allowOldDate: boolean, + allowFutureDates: boolean, + doneButtonLabel: string, + doneButtonColor: string, + cancelButtonLabel: string, + cancelButtonColor: string, + x: number, + y: number, + minuteInterval: number, + popoverArrowDirection: string, + locale: string +} + /** * The DatePicker plugin allows the user to fetch date or time using native dialogs. * * Platforms supported: iOS, Android, Windows * - * Requires Cordova plugin: `cordova-plugin-datepicker`. For more info, please see the [Datepicker plugin docs](https://github.com/VitaliiBlagodir/cordova-plugin-datepicker). + * Requires Cordova plugin: `cordova-plugin-datepicker`. For more info, please see the [DatePicker plugin docs](https://github.com/VitaliiBlagodir/cordova-plugin-datepicker). * * Install the plugin by running the following command: * ```shell - * ionic plugin add cordova-plugin-datepicker + * cordova plugin add https://github.com/VitaliiBlagodir/cordova-plugin-datepicker.git * ``` * * @usage * ```js - * DatePicker. + * DatePicker.show({ + * date: new Date(), + * mode: 'date' + * }).then( + * date => console.log("Got date: ", date), + * err => console.log("Error occurred while getting date:", err) + * ); * ``` * */ @Plugin({ - plugin: 'cordova-plugin-datepicker', - pluginRef: 'plugins.datePicker' + plugin: 'https://github.com/VitaliiBlagodir/cordova-plugin-datepicker.git', + pluginRef: 'datePicker' }) export class DatePicker { @@ -30,30 +99,12 @@ export class DatePicker { * @returns {Promise} Returns a promise that resolves with the picked date and/or time, or rejects with an error. */ @Cordova() - static show(options?: { - mode?: string, - date?: Date, - minDate?: Date, - maxDate?: Date, - titleText?: string, - okText?: string, - cancelText?: string, - todayText?: string, - nowText?: string, - is24Hour?: boolean, - androidTheme?: number, - allowOldDate?: boolean, - allowFutureDates?: boolean, - doneButtonLabel?: string, - doneButtonColor?: string, - cancelButtonLabel?: string, - cancelButtonColor?: string, - x?: number, - y?: number, - minuteInterval?: number, - popoverArrowDirection?: string, - locale?: string - }): Promise { + static show(options: datePickerOptions): Promise { + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 return new Promise((res, rej) => {}); }